diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 0250902d0a8b..d6a4ccdc3e31 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -62,7 +62,6 @@ }, "dependencies": { "@eth-optimism/contracts": "0.6.0", - "@eth-optimism/contracts-bedrock": "workspace:*", "@eth-optimism/core-utils": "workspace:*", "lodash": "^4.17.21", "merkletreejs": "^0.3.11", diff --git a/packages/sdk/src/adapters/standard-bridge.ts b/packages/sdk/src/adapters/standard-bridge.ts index 46d30880611b..9e5315cf421a 100644 --- a/packages/sdk/src/adapters/standard-bridge.ts +++ b/packages/sdk/src/adapters/standard-bridge.ts @@ -14,10 +14,10 @@ import { } from '@ethersproject/abstract-provider' import { predeploys } from '@eth-optimism/contracts' import { hexStringEquals } from '@eth-optimism/core-utils' -import l1StandardBridgeArtifact from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json' -import l2StandardBridgeArtifact from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json' -import optimismMintableERC20 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json' +import l1StandardBridgeArtifact from '../forge-artifacts/L1StandardBridge.json' +import l2StandardBridgeArtifact from '../forge-artifacts/L2StandardBridge.json' +import optimismMintableERC20 from '../forge-artifacts/OptimismMintableERC20.json' import { CrossChainMessenger } from '../cross-chain-messenger' import { IBridgeAdapter, diff --git a/packages/sdk/src/forge-artifacts/DisputeGameFactory.json b/packages/sdk/src/forge-artifacts/DisputeGameFactory.json new file mode 100644 index 000000000000..e2db82b17cc3 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/DisputeGameFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"create","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"payable"},{"type":"function","name":"findLatestGames","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_start","type":"uint256","internalType":"uint256"},{"name":"_n","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"games_","type":"tuple[]","internalType":"struct IDisputeGameFactory.GameSearchResult[]","components":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes32","internalType":"GameId"},{"name":"timestamp","type":"uint64","internalType":"Timestamp"},{"name":"rootClaim","type":"bytes32","internalType":"Claim"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"gameAtIndex","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"timestamp_","type":"uint64","internalType":"Timestamp"},{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"view"},{"type":"function","name":"gameCount","inputs":[],"outputs":[{"name":"gameCount_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"gameImpls","inputs":[{"name":"","type":"uint32","internalType":"GameType"}],"outputs":[{"name":"","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"view"},{"type":"function","name":"games","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"},{"name":"timestamp_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"getGameUUID","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"uuid_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"initBonds","inputs":[{"name":"","type":"uint32","internalType":"GameType"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setImplementation","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_impl","type":"address","internalType":"contract IDisputeGame"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInitBond","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_initBond","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"DisputeGameCreated","inputs":[{"name":"disputeProxy","type":"address","indexed":true,"internalType":"address"},{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"},{"name":"rootClaim","type":"bytes32","indexed":true,"internalType":"Claim"}],"anonymous":false},{"type":"event","name":"ImplementationSet","inputs":[{"name":"impl","type":"address","indexed":true,"internalType":"address"},{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"}],"anonymous":false},{"type":"event","name":"InitBondUpdated","inputs":[{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"},{"name":"newBond","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"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":"GameAlreadyExists","inputs":[{"name":"uuid","type":"bytes32","internalType":"Hash"}]},{"type":"error","name":"IncorrectBondAmount","inputs":[]},{"type":"error","name":"NoImplementation","inputs":[{"name":"gameType","type":"uint32","internalType":"GameType"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000292565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016260201b62000cdd1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6200010c62000171565b6200011782620001d9565b80156200015e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001cd5760405162461bcd60e51b815260206004820152602b60248201526000805160206200185283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d76200022b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002875760405162461bcd60e51b815260206004820152602b60248201526000805160206200185283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d733620001d9565b6115b080620002a26000396000f3fe6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110bf565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110f6565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d610197366004611111565b61045e565b3480156101a857600080fd5b506101bc6101b736600461113b565b6104aa565b60405161017391906111e8565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161017391906112a5565b34801561024a57600080fd5b5061025e6102593660046112b8565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110f6565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e33660046112b8565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e3660046112b8565b6109ef565b34801561033f57600080fd5b5061035361034e36600461133f565b610a28565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611358565b610a8a565b3480156103c057600080fd5b5061010d6103cf366004611358565b610c26565b6103dc610cf9565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf9565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f0611375565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff831663ffffffff891683036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113d3565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610643919061149e565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a5161068591906114b7565b8151811061069557610695611375565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ef565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf9565b6107536000610d7a565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff86166000908152606660205260409020543414610813576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108206001436114b7565b40905061088a338783888860405160200161083f9594939291906114f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df1565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050505060006108fb888888886109ef565b60008181526067602052604090205490915015610947576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a089493929190611542565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7d60688581548110610a4357610a43611375565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aaa5750600054600160ff909116105b80610ac45750303b158015610ac4575060005460ff166001145b610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb6610dff565b610bbf82610d7a565b8015610c2257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2e610cf9565b73ffffffffffffffffffffffffffffffffffffffff8116610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cda81610d7a565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106e760008484610e9e565b600054610100900460ff16610e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753610fe4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf097505086610f6a5763301164256000526004601cfd5b905285527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b600054610100900460ff1661107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d7a565b803563ffffffff8116811461109857600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cda57600080fd5b600080604083850312156110d257600080fd5b6110db83611084565b915060208301356110eb8161109d565b809150509250929050565b60006020828403121561110857600080fd5b6106e782611084565b6000806040838503121561112457600080fd5b61112d83611084565b946020939093013593505050565b60008060006060848603121561115057600080fd5b61115984611084565b95602085013595506040909401359392505050565b60005b83811015611189578181015183820152602001611171565b83811115611198576000848401525b50505050565b600081518084526111b681602086016020860161116e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611297578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a0918501829052906112838186018361119e565b96890196945050509086019060010161120f565b509098975050505050505050565b6020815260006106e7602083018461119e565b600080600080606085870312156112ce57600080fd5b6112d785611084565b935060208501359250604085013567ffffffffffffffff808211156112fb57600080fd5b818701915087601f83011261130f57600080fd5b81358181111561131e57600080fd5b88602082850101111561133057600080fd5b95989497505060200194505050565b60006020828403121561135157600080fd5b5035919050565b60006020828403121561136a57600080fd5b81356106e78161109d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113e557600080fd5b815167ffffffffffffffff808211156113fd57600080fd5b818401915084601f83011261141157600080fd5b815181811115611423576114236113a4565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611469576114696113a4565b8160405282815287602084870101111561148257600080fd5b61149383602083016020880161116e565b979650505050505050565b6000602082840312156114b057600080fd5b5051919050565b6000828210156114f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","sourceMap":"989:7456:163:-:0;;;1965:74;;;;;;;;;-1:-1:-1;2010:22:163::1;2029:1;2010:10;:22::i;:::-;989:7456:::0;;2136:124;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;3368:16:27;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:27;;;;;3394:65;2201:16:163::1;:14;:16::i;:::-;2227:26;2246:6:::0;2227:18:::1;:26::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;2136:124:163;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;1003:95:26:-;4910:13:27;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;-1:-1:-1;;;;;;;;;;;888:18:357;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;1065:26:26::1;:24;:26::i;:::-;1003:95::o:0;2673:187::-;2765:6;;;-1:-1:-1;;;;;2781:17:26;;;-1:-1:-1;;;;;;2781:17:26;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1104:111::-;4910:13:27;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;-1:-1:-1;;;;;;;;;;;888:18:357;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;1176:32:26::1;929:10:34::0;1176:18:26::1;:32::i;628:407:357:-:0;989:7456:163;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110bf565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110f6565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d610197366004611111565b61045e565b3480156101a857600080fd5b506101bc6101b736600461113b565b6104aa565b60405161017391906111e8565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161017391906112a5565b34801561024a57600080fd5b5061025e6102593660046112b8565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110f6565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e33660046112b8565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e3660046112b8565b6109ef565b34801561033f57600080fd5b5061035361034e36600461133f565b610a28565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611358565b610a8a565b3480156103c057600080fd5b5061010d6103cf366004611358565b610c26565b6103dc610cf9565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf9565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f0611375565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff831663ffffffff891683036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113d3565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610643919061149e565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a5161068591906114b7565b8151811061069557610695611375565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ef565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf9565b6107536000610d7a565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff86166000908152606660205260409020543414610813576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108206001436114b7565b40905061088a338783888860405160200161083f9594939291906114f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df1565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050505060006108fb888888886109ef565b60008181526067602052604090205490915015610947576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a089493929190611542565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7d60688581548110610a4357610a43611375565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aaa5750600054600160ff909116105b80610ac45750303b158015610ac4575060005460ff166001145b610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb6610dff565b610bbf82610d7a565b8015610c2257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2e610cf9565b73ffffffffffffffffffffffffffffffffffffffff8116610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cda81610d7a565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106e760008484610e9e565b600054610100900460ff16610e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753610fe4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf097505086610f6a5763301164256000526004601cfd5b905285527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b600054610100900460ff1661107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d7a565b803563ffffffff8116811461109857600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cda57600080fd5b600080604083850312156110d257600080fd5b6110db83611084565b915060208301356110eb8161109d565b809150509250929050565b60006020828403121561110857600080fd5b6106e782611084565b6000806040838503121561112457600080fd5b61112d83611084565b946020939093013593505050565b60008060006060848603121561115057600080fd5b61115984611084565b95602085013595506040909401359392505050565b60005b83811015611189578181015183820152602001611171565b83811115611198576000848401525b50505050565b600081518084526111b681602086016020860161116e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611297578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a0918501829052906112838186018361119e565b96890196945050509086019060010161120f565b509098975050505050505050565b6020815260006106e7602083018461119e565b600080600080606085870312156112ce57600080fd5b6112d785611084565b935060208501359250604085013567ffffffffffffffff808211156112fb57600080fd5b818701915087601f83011261130f57600080fd5b81358181111561131e57600080fd5b88602082850101111561133057600080fd5b95989497505060200194505050565b60006020828403121561135157600080fd5b5035919050565b60006020828403121561136a57600080fd5b81356106e78161109d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113e557600080fd5b815167ffffffffffffffff808211156113fd57600080fd5b818401915084601f83011261141157600080fd5b815181811115611423576114236113a4565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611469576114696113a4565b8160405282815287602084870101111561148257600080fd5b61149383602083016020880161116e565b979650505050505050565b6000602082840312156114b057600080fd5b5051919050565b6000828210156114f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a","sourceMap":"989:7456:163:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8027:190;;;;;;;;;;-1:-1:-1;8027:190:163;;;;;:::i;:::-;;:::i;:::-;;1338:50;;;;;;;;;;-1:-1:-1;1338:50:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1237:42:357;1225:55;;;1207:74;;1195:2;1180:18;1338:50:163;;;;;;;;8263:180;;;;;;;;;;-1:-1:-1;8263:180:163;;;;;:::i;:::-;;:::i;6052:1929::-;;;;;;;;;;-1:-1:-1;6052:1929:163;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2306:117::-;;;;;;;;;;-1:-1:-1;2393:16:163;:23;2306:117;;;4100:25:357;;;4088:2;4073:18;2306:117:163;3954:177:357;1251:40:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2469:342::-;;;;;;;;;;-1:-1:-1;2469:342:163;;;;;:::i;:::-;;:::i;:::-;;;;5437:42:357;5425:55;;;5407:74;;5529:18;5517:31;;;5512:2;5497:18;;5490:59;5380:18;2469:342:163;5179:376:357;1435:45:163;;;;;;;;;;-1:-1:-1;1435:45:163;;;;;:::i;:::-;;;;;;;;;;;;;;2071:101:26;;;;;;;;;;;;;:::i;3138:2553:163:-;;;;;;:::i;:::-;;:::i;1441:85:26:-;;;;;;;;;;-1:-1:-1;1513:6:26;;;;1441:85;;5737:269:163;;;;;;;;;;-1:-1:-1;5737:269:163;;;;;:::i;:::-;;:::i;2857:235::-;;;;;;;;;;-1:-1:-1;2857:235:163;;;;;:::i;:::-;;:::i;:::-;;;;6501:10:357;6489:23;;;6471:42;;6561:18;6549:31;;;6544:2;6529:18;;6522:59;6629:42;6617:55;6597:18;;;6590:83;6459:2;6444:18;2857:235:163;6185:494:357;2136:124:163;;;;;;;;;;-1:-1:-1;2136:124:163;;;;;:::i;:::-;;:::i;2321:198:26:-;;;;;;;;;;-1:-1:-1;2321:198:26;;;;;:::i;:::-;;:::i;8027:190:163:-;1334:13:26;:11;:13::i;:::-;8123:20:163::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:28;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;8166:44;;8123:28;;8166:44:::1;::::0;::::1;8027:190:::0;;:::o;8263:180::-;1334:13:26;:11;:13::i;:::-;8352:20:163::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:32;;;8399:37;8375:9;;8352:20;8399:37:::1;::::0;::::1;8263:180:::0;;:::o;6052:1929::-;6384:16;:23;6202:32;;6374:33;;;;:44;;-1:-1:-1;6411:7:163;;6374:44;6420:13;6370:63;-1:-1:-1;6690:4:163;6684:11;;6747:4;6743:13;;;6721:37;;6737:4;6721:37;6708:51;;;6891:6;6874:1101;6914:6;6909:1;:11;6874:1101;;6937:9;6949:16;6966:1;6949:19;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;1277:3:174;1273:17;;;1325:3;1321:17;;;1340:18;1317:42;1399;1386:56;;7093:13:163;;;7075:33;;7071:834;;7433:4;7424:6;7418:13;7414:24;7406:6;7399:40;7475:22;7500:5;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7475:42;;7535:15;7553:5;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7535:35;;7616:226;;;;;;;;7662:1;7616:226;;;;7695:2;7616:226;;;;7730:9;7616:226;;;;;;7772:9;7616:226;;;;7814:9;7616:226;;;7588:6;7611:1;7595:6;:13;:17;;;;:::i;:::-;7588:25;;;;;;;;:::i;:::-;;;;;;:254;;;;7881:2;7864:6;:13;:19;7860:30;;7885:5;;;;;;;;7860:30;7110:795;;7071:834;-1:-1:-1;;7947:3:163;;;;;-1:-1:-1;6874:1101:163;;-1:-1:-1;6874:1101:163;;;6052:1929;;;;;;:::o;2469:342::-;2626:19;2647:20;2683:9;2695:46;2707:9;2718:10;2730;;2695:11;:46::i;:::-;2776:19;;;;:13;:19;;;;;;1399:42:174;1386:56;;;1325:3;1321:17;;;;1340:18;1317:42;;-1:-1:-1;2751:53:163;-1:-1:-1;;;;;;2469:342:163:o;2071:101:26:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;3138:2553:163:-;3424:20;;;3299:19;3424:20;;;:9;:20;;;;;;;;;3539:67;;3579:27;;;;;8982:10:357;8970:23;;3579:27:163;;;8952:42:357;8925:18;;3579:27:163;;;;;;;;3539:67;3701:20;;;;;;;:9;:20;;;;;;3688:9;:33;3684:67;;3730:21;;;;;;;;;;;;;;3684:67;3807:18;3838:16;3853:1;3838:12;:16;:::i;:::-;3828:27;3807:48;;4890:85;4927:10;4939;4951;4963;;4910:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4890:19;;;;;:85::i;:::-;4868:108;;4986:6;:17;;;5012:9;4986:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5099:9;5111:46;5123:9;5134:10;5146;;5111:11;:46::i;:::-;5290:1;5258:19;;;:13;:19;;;;;;5099:58;;-1:-1:-1;5244:48:163;5240:84;;5301:23;;;;;;;;4100:25:357;;;4073:18;;5301:23:163;3954:177:357;5240:84:163;5364:9;5424:15;767:3:174;763:20;746:3;742:19;;;739:45;736:61;;5552:19:163;;;;:13;:19;;;;;;:24;;;5586:16;:25;;;;;;;;;;;;;;;5626:58;5364:86;;-1:-1:-1;5673:10:163;;5626:58;;;;;;;;;;5552:19;5626:58;3324:2367;;;;3138:2553;;;;;;:::o;5737:269::-;5898:10;5963:9;5974:10;5986;;5952:45;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5942:56;;;;;;5924:75;;5737:269;;;;;;:::o;2857:235::-;2941:18;2961:20;2983:19;3052:33;:16;3069:6;3052:24;;;;;;;;:::i;:::-;;;;;;;;;1277:3:174;1273:17;;;;1325:3;1321:17;;;1340:18;1317:42;;1399;1386:56;;1077:381;3052:33:163;3018:67;;;;-1:-1:-1;3018:67:163;;-1:-1:-1;2857:235:163;-1:-1:-1;;2857:235:163:o;2136:124::-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;:17;3219:66;3157:201;;;;;;;10469:2:357;3157:201:27;;;10451:21:357;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;10618:16;10598:18;;;10591:44;10652:19;;3157:201:27;10267:410:357;3157:201:27;3368:12;:16;;;;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;2201:16:163::1;:14;:16::i;:::-;2227:26;2246:6;2227:18;:26::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;10834:36:357;;3553:14:27;;10822:2:357;10807:18;3553:14:27;;;;;;;3479:99;3101:483;2136:124:163;:::o;2321:198:26:-;1334:13;:11;:13::i;:::-;2409:22:::1;::::0;::::1;2401:73;;;::::0;::::1;::::0;;11083:2:357;2401:73:26::1;::::0;::::1;11065:21:357::0;11122:2;11102:18;;;11095:30;11161:34;11141:18;;;11134:62;11232:8;11212:18;;;11205:36;11258:19;;2401:73:26::1;10881:402:357::0;2401:73:26::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:34;1662:23:26;1654:68;;;;;;;11490:2:357;1654:68:26;;;11472:21:357;;;11509:18;;;11502:30;11568:34;11548:18;;;11541:62;11620:18;;1654:68:26;11288:356:357;2673:187:26;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;19667:152:99:-;19743:16;19782:30;19788:1;19791:14;19807:4;19782:5;:30::i;1003:95:26:-;4910:13:27;;;;;;;4902:69;;;;;;;11851:2:357;4902:69:27;;;11833:21:357;11890:2;11870:18;;;11863:30;11929:34;11909:18;;;11902:62;12000:13;11980:18;;;11973:41;12031:19;;4902:69:27;11649:407:357;4902:69:27;1065:26:26::1;:24;:26::i;19918:11162:99:-:0;20025:16;20200:4;20194;20190:15;20184:22;20251:4;20245;20241:15;20235:22;20302:4;20296;20292:15;20286:22;20345:4;20339:11;20399:10;20392:4;20386;20382:15;20378:32;20444:7;20438:14;20582:1;20570:10;20566:18;29569:28;29563:4;29556:42;29674:14;29667:4;29661;29657:15;29650:39;29877:52;29863:11;29857:4;29853:22;29850:80;29827:4;29821;29817:15;29793:151;30048:66;30041:4;30035;30031:15;30007:121;30449:40;30441:4;30428:11;30424:22;30418:4;30414:33;30411:79;30384:6;30371:11;30368:23;30362:4;30358:34;30352:4;30348:45;30141:363;30543:11;30537:4;30533:22;30524:7;30517:39;30630:4;30617:11;30613:22;30606:4;30600;30596:15;30589:5;30582:54;30570:66;;;30659:8;30649:136;;30700:10;30694:4;30687:24;30766:4;30760;30753:18;30649:136;30865:24;;30902;;30946:15;;;30939:33;30992:15;;;30985:33;31038:15;;;;31031:33;;;;19918:11162;;-1:-1:-1;;19918:11162:99:o;1104:111:26:-;4910:13:27;;;;;;;4902:69;;;;;;;11851:2:357;4902:69:27;;;11833:21:357;11890:2;11870:18;;;11863:30;11929:34;11909:18;;;11902:62;12000:13;11980:18;;;11973:41;12031:19;;4902:69:27;11649:407:357;4902:69:27;1176:32:26::1;929:10:34::0;1176:18:26::1;:32::i;14:186:357:-:0;104:20;;164:10;153:22;;143:33;;133:61;;190:1;187;180:12;133:61;14:186;;;:::o;205:168::-;305:42;298:5;294:54;287:5;284:65;274:93;;363:1;360;353:12;378:411;500:6;508;561:2;549:9;540:7;536:23;532:32;529:52;;;577:1;574;567:12;529:52;600:51;641:9;600:51;:::i;:::-;590:61;;701:2;690:9;686:18;673:32;714:45;753:5;714:45;:::i;:::-;778:5;768:15;;;378:411;;;;;:::o;794:239::-;884:6;937:2;925:9;916:7;912:23;908:32;905:52;;;953:1;950;943:12;905:52;976:51;1017:9;976:51;:::i;1292:307::-;1391:6;1399;1452:2;1440:9;1431:7;1427:23;1423:32;1420:52;;;1468:1;1465;1458:12;1420:52;1491:51;1532:9;1491:51;:::i;:::-;1481:61;1589:2;1574:18;;;;1561:32;;-1:-1:-1;;;1292:307:357:o;1604:375::-;1712:6;1720;1728;1781:2;1769:9;1760:7;1756:23;1752:32;1749:52;;;1797:1;1794;1787:12;1749:52;1820:51;1861:9;1820:51;:::i;:::-;1810:61;1918:2;1903:18;;1890:32;;-1:-1:-1;1969:2:357;1954:18;;;1941:32;;1604:375;-1:-1:-1;;;1604:375:357:o;1984:258::-;2056:1;2066:113;2080:6;2077:1;2074:13;2066:113;;;2156:11;;;2150:18;2137:11;;;2130:39;2102:2;2095:10;2066:113;;;2197:6;2194:1;2191:13;2188:48;;;2232:1;2223:6;2218:3;2214:16;2207:27;2188:48;;1984:258;;;:::o;2247:316::-;2288:3;2326:5;2320:12;2353:6;2348:3;2341:19;2369:63;2425:6;2418:4;2413:3;2409:14;2402:4;2395:5;2391:16;2369:63;:::i;:::-;2477:2;2465:15;2482:66;2461:88;2452:98;;;;2552:4;2448:109;;2247:316;-1:-1:-1;;2247:316:357:o;2568:1381::-;2782:4;2811:2;2851;2840:9;2836:18;2881:2;2870:9;2863:21;2904:6;2939;2933:13;2970:6;2962;2955:22;2996:2;2986:12;;3029:2;3018:9;3014:18;3007:25;;3091:2;3081:6;3078:1;3074:14;3063:9;3059:30;3055:39;3129:2;3121:6;3117:15;3150:1;3160:760;3174:6;3171:1;3168:13;3160:760;;;3239:22;;;3263:66;3235:95;3223:108;;3354:13;;3422:9;;3407:25;;3475:11;;;3469:18;3452:15;;;3445:43;3535:11;;;3529:18;3549;3525:43;3508:15;;;3501:68;3592:4;3639:11;;;3633:18;3616:15;;;3609:43;3675:4;3718:11;;;3712:18;3390:4;3750:15;;;3743:27;;;3712:18;3793:47;3824:15;;;3712:18;3793:47;:::i;:::-;3898:12;;;;3783:57;-1:-1:-1;;;3863:15:357;;;;3196:1;3189:9;3160:760;;;-1:-1:-1;3937:6:357;;2568:1381;-1:-1:-1;;;;;;;;2568:1381:357:o;4136:219::-;4285:2;4274:9;4267:21;4248:4;4305:44;4345:2;4334:9;4330:18;4322:6;4305:44;:::i;4360:814::-;4507:6;4515;4523;4531;4584:2;4572:9;4563:7;4559:23;4555:32;4552:52;;;4600:1;4597;4590:12;4552:52;4623:51;4664:9;4623:51;:::i;:::-;4613:61;;4721:2;4710:9;4706:18;4693:32;4683:42;;4776:2;4765:9;4761:18;4748:32;4799:18;4840:2;4832:6;4829:14;4826:34;;;4856:1;4853;4846:12;4826:34;4894:6;4883:9;4879:22;4869:32;;4939:7;4932:4;4928:2;4924:13;4920:27;4910:55;;4961:1;4958;4951:12;4910:55;5001:2;4988:16;5027:2;5019:6;5016:14;5013:34;;;5043:1;5040;5033:12;5013:34;5088:7;5083:2;5074:6;5070:2;5066:15;5062:24;5059:37;5056:57;;;5109:1;5106;5099:12;5056:57;4360:814;;;;-1:-1:-1;;5140:2:357;5132:11;;-1:-1:-1;;;4360:814:357:o;6000:180::-;6059:6;6112:2;6100:9;6091:7;6087:23;6083:32;6080:52;;;6128:1;6125;6118:12;6080:52;-1:-1:-1;6151:23:357;;6000:180;-1:-1:-1;6000:180:357:o;6684:261::-;6743:6;6796:2;6784:9;6775:7;6771:23;6767:32;6764:52;;;6812:1;6809;6802:12;6764:52;6851:9;6838:23;6870:45;6909:5;6870:45;:::i;6950:184::-;7002:77;6999:1;6992:88;7099:4;7096:1;7089:15;7123:4;7120:1;7113:15;7139:184;7191:77;7188:1;7181:88;7288:4;7285:1;7278:15;7312:4;7309:1;7302:15;7328:942;7407:6;7460:2;7448:9;7439:7;7435:23;7431:32;7428:52;;;7476:1;7473;7466:12;7428:52;7509:9;7503:16;7538:18;7579:2;7571:6;7568:14;7565:34;;;7595:1;7592;7585:12;7565:34;7633:6;7622:9;7618:22;7608:32;;7678:7;7671:4;7667:2;7663:13;7659:27;7649:55;;7700:1;7697;7690:12;7649:55;7729:2;7723:9;7751:2;7747;7744:10;7741:36;;;7757:18;;:::i;:::-;7891:2;7885:9;7953:4;7945:13;;7796:66;7941:22;;;7965:2;7937:31;7933:40;7921:53;;;7989:18;;;8009:22;;;7986:46;7983:72;;;8035:18;;:::i;:::-;8075:10;8071:2;8064:22;8110:2;8102:6;8095:18;8150:7;8145:2;8140;8136;8132:11;8128:20;8125:33;8122:53;;;8171:1;8168;8161:12;8122:53;8184:55;8236:2;8231;8223:6;8219:15;8214:2;8210;8206:11;8184:55;:::i;:::-;8258:6;7328:942;-1:-1:-1;;;;;;;7328:942:357:o;8275:212::-;8373:6;8426:2;8414:9;8405:7;8401:23;8397:32;8394:52;;;8442:1;8439;8432:12;8394:52;-1:-1:-1;8465:16:357;;8275:212;-1:-1:-1;8275:212:357:o;8492:279::-;8532:4;8560:1;8557;8554:8;8551:188;;;8595:77;8592:1;8585:88;8696:4;8693:1;8686:15;8724:4;8721:1;8714:15;8551:188;-1:-1:-1;8756:9:357;;8492:279::o;9005:585::-;9307:66;9298:6;9294:2;9290:15;9286:88;9281:3;9274:101;9405:6;9400:2;9395:3;9391:12;9384:28;9442:6;9437:2;9432:3;9428:12;9421:28;9493:6;9485;9480:2;9475:3;9471:12;9458:42;9256:3;9523:16;;9541:2;9519:25;9553:13;;;9519:25;9005:585;-1:-1:-1;;;;9005:585:357:o;9595:667::-;9878:10;9870:6;9866:23;9855:9;9848:42;9926:6;9921:2;9910:9;9906:18;9899:34;9969:2;9964;9953:9;9949:18;9942:30;10008:6;10003:2;9992:9;9988:18;9981:34;10066:6;10058;10052:3;10041:9;10037:19;10024:49;10123:1;10093:22;;;10117:3;10089:32;;;10082:43;;;;10177:2;10165:15;;;10182:66;10161:88;10146:104;10142:114;;9595:667;-1:-1:-1;;;9595:667:357:o","linkReferences":{}},"methodIdentifiers":{"create(uint32,bytes32,bytes)":"82ecf2f6","findLatestGames(uint32,uint256,uint256)":"254bd683","gameAtIndex(uint256)":"bb8aa1fc","gameCount()":"4d1975b4","gameImpls(uint32)":"1b685b9e","games(uint32,bytes32,bytes)":"5f0150cb","getGameUUID(uint32,bytes32,bytes)":"96cd9720","initBonds(uint32)":"6593dc6e","initialize(address)":"c4d66de8","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setImplementation(uint32,address)":"14f6b1a3","setInitBond(uint32,uint256)":"1e334240","transferOwnership(address)":"f2fde38b","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid\",\"type\":\"bytes32\"}],\"name\":\"GameAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectBondAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"}],\"name\":\"NoImplementation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputeProxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"DisputeGameCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"}],\"name\":\"ImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newBond\",\"type\":\"uint256\"}],\"name\":\"InitBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_n\",\"type\":\"uint256\"}],\"name\":\"findLatestGames\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"GameId\",\"name\":\"metadata\",\"type\":\"bytes32\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct IDisputeGameFactory.GameSearchResult[]\",\"name\":\"games_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"gameAtIndex\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"},{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gameCount_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"gameImpls\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"games\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"getGameUUID\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"initBonds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"contract IDisputeGame\",\"name\":\"_impl\",\"type\":\"address\"}],\"name\":\"setImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_initBond\",\"type\":\"uint256\"}],\"name\":\"setInitBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"GameAlreadyExists(bytes32)\":[{\"params\":{\"uuid\":\"The UUID of the dispute game that already exists.\"}}],\"NoImplementation(uint32)\":[{\"params\":{\"gameType\":\"The unsupported game type.\"}}]},\"kind\":\"dev\",\"methods\":{\"create(uint32,bytes32,bytes)\":{\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame - used to decide the proxy implementation.\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"proxy_\":\"The address of the created DisputeGame proxy.\"}},\"findLatestGames(uint32,uint256,uint256)\":{\"params\":{\"_gameType\":\"The type of game to find.\",\"_n\":\"The number of games to find.\",\"_start\":\"The index to start the reverse search from.\"}},\"gameAtIndex(uint256)\":{\"params\":{\"_index\":\"The index of the dispute game.\"},\"returns\":{\"gameType_\":\"The type of the DisputeGame - used to decide the proxy implementation.\",\"proxy_\":\"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.\",\"timestamp_\":\"The timestamp of the creation of the dispute game.\"}},\"gameCount()\":{\"returns\":{\"gameCount_\":\"The total number of dispute games created by this factory.\"}},\"games(uint32,bytes32,bytes)\":{\"details\":\"`++` equates to concatenation.\",\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame - used to decide the proxy implementation\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"proxy_\":\"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.\",\"timestamp_\":\"The timestamp of the creation of the dispute game.\"}},\"getGameUUID(uint32,bytes32,bytes)\":{\"details\":\"Hashes the concatenation of `gameType . rootClaim . extraData` without expanding memory.\",\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame.\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"uuid_\":\"The unique identifier for the given dispute game parameters.\"}},\"initialize(address)\":{\"params\":{\"_owner\":\"The owner of the contract.\"}},\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setImplementation(uint32,address)\":{\"details\":\"May only be called by the `owner`.\",\"params\":{\"_gameType\":\"The type of the DisputeGame.\",\"_impl\":\"The implementation contract for the given `GameType`.\"}},\"setInitBond(uint32,uint256)\":{\"details\":\"May only be called by the `owner`.\",\"params\":{\"_gameType\":\"The type of the DisputeGame.\",\"_initBond\":\"The bond (in wei) for initializing a game type.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"gameImpls\":{\"params\":{\"_gameType\":\"The type of the dispute game.\"},\"return\":\"The address of the implementation of the game type. Will be cloned on creation of a new dispute game with the given `gameType`.\",\"returns\":{\"_0\":\"The address of the implementation of the game type. Will be cloned on creation of a new dispute game with the given `gameType`.\"}},\"initBonds\":{\"params\":{\"_gameType\":\"The type of the dispute game.\"},\"return\":\"The required bond for initializing a dispute game of the given type.\",\"returns\":{\"_0\":\"The required bond for initializing a dispute game of the given type.\"}},\"version\":{\"custom:semver\":\"0.6.0\"}},\"title\":\"DisputeGameFactory\",\"version\":1},\"userdoc\":{\"errors\":{\"GameAlreadyExists(bytes32)\":[{\"notice\":\"Thrown when a dispute game that already exists is attempted to be created.\"}],\"IncorrectBondAmount()\":[{\"notice\":\"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction.\"}],\"NoImplementation(uint32)\":[{\"notice\":\"Thrown when a dispute game is attempted to be created with an unsupported game type.\"}]},\"events\":{\"DisputeGameCreated(address,uint32,bytes32)\":{\"notice\":\"Emitted when a new dispute game is created\"},\"ImplementationSet(address,uint32)\":{\"notice\":\"Emitted when a new game implementation added to the factory\"},\"InitBondUpdated(uint32,uint256)\":{\"notice\":\"Emitted when a game type's initialization bond is updated\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructs a new DisputeGameFactory contract.\"},\"create(uint32,bytes32,bytes)\":{\"notice\":\"Creates a new DisputeGame proxy contract.\"},\"findLatestGames(uint32,uint256,uint256)\":{\"notice\":\"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`.\"},\"gameAtIndex(uint256)\":{\"notice\":\"`gameAtIndex` returns the dispute game contract address and its creation timestamp at the given index. Each created dispute game increments the underlying index.\"},\"gameCount()\":{\"notice\":\"The total number of dispute games created by this factory.\"},\"gameImpls(uint32)\":{\"notice\":\"`gameImpls` is a mapping that maps `GameType`s to their respective `IDisputeGame` implementations.\"},\"games(uint32,bytes32,bytes)\":{\"notice\":\"`games` queries an internal mapping that maps the hash of `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone.\"},\"getGameUUID(uint32,bytes32,bytes)\":{\"notice\":\"Returns a unique identifier for the given dispute game parameters.\"},\"initBonds(uint32)\":{\"notice\":\"Returns the required bonds for initializing a dispute game of the given type.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract.\"},\"setImplementation(uint32,address)\":{\"notice\":\"Sets the implementation contract for a specific `GameType`.\"},\"setInitBond(uint32,uint256)\":{\"notice\":\"Sets the bond (in wei) for initializing a game type.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly into the storage slot with the address of the dispute game to make offchain discoverability of playable dispute games easier.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/DisputeGameFactory.sol\":\"DisputeGameFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e\",\"dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN\"]},\"src/dispute/DisputeGameFactory.sol\":{\"keccak256\":\"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f\",\"dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a\",\"dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd\",\"dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48\",\"dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046\",\"dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e\",\"dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961\",\"dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"Hash","name":"uuid","type":"bytes32"}],"type":"error","name":"GameAlreadyExists"},{"inputs":[],"type":"error","name":"IncorrectBondAmount"},{"inputs":[{"internalType":"GameType","name":"gameType","type":"uint32"}],"type":"error","name":"NoImplementation"},{"inputs":[{"internalType":"address","name":"disputeProxy","type":"address","indexed":true},{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true},{"internalType":"Claim","name":"rootClaim","type":"bytes32","indexed":true}],"type":"event","name":"DisputeGameCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":true},{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true}],"type":"event","name":"ImplementationSet","anonymous":false},{"inputs":[{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true},{"internalType":"uint256","name":"newBond","type":"uint256","indexed":true}],"type":"event","name":"InitBondUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","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":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_n","type":"uint256"}],"stateMutability":"view","type":"function","name":"findLatestGames","outputs":[{"internalType":"struct IDisputeGameFactory.GameSearchResult[]","name":"games_","type":"tuple[]","components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"GameId","name":"metadata","type":"bytes32"},{"internalType":"Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Claim","name":"rootClaim","type":"bytes32"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"gameAtIndex","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Timestamp","name":"timestamp_","type":"uint64"},{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameCount","outputs":[{"internalType":"uint256","name":"gameCount_","type":"uint256"}]},{"inputs":[{"internalType":"GameType","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"gameImpls","outputs":[{"internalType":"contract IDisputeGame","name":"","type":"address"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"view","type":"function","name":"games","outputs":[{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"},{"internalType":"Timestamp","name":"timestamp_","type":"uint64"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"pure","type":"function","name":"getGameUUID","outputs":[{"internalType":"Hash","name":"uuid_","type":"bytes32"}]},{"inputs":[{"internalType":"GameType","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"initBonds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"contract IDisputeGame","name":"_impl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementation"},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"uint256","name":"_initBond","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setInitBond"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"create(uint32,bytes32,bytes)":{"params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The address of the created DisputeGame proxy."}},"findLatestGames(uint32,uint256,uint256)":{"params":{"_gameType":"The type of game to find.","_n":"The number of games to find.","_start":"The index to start the reverse search from."}},"gameAtIndex(uint256)":{"params":{"_index":"The index of the dispute game."},"returns":{"gameType_":"The type of the DisputeGame - used to decide the proxy implementation.","proxy_":"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"gameCount()":{"returns":{"gameCount_":"The total number of dispute games created by this factory."}},"games(uint32,bytes32,bytes)":{"details":"`++` equates to concatenation.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"getGameUUID(uint32,bytes32,bytes)":{"details":"Hashes the concatenation of `gameType . rootClaim . extraData` without expanding memory.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"uuid_":"The unique identifier for the given dispute game parameters."}},"initialize(address)":{"params":{"_owner":"The owner of the contract."}},"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setImplementation(uint32,address)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_impl":"The implementation contract for the given `GameType`."}},"setInitBond(uint32,uint256)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_initBond":"The bond (in wei) for initializing a game type."}},"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":{"constructor":{"notice":"Constructs a new DisputeGameFactory contract."},"create(uint32,bytes32,bytes)":{"notice":"Creates a new DisputeGame proxy contract."},"findLatestGames(uint32,uint256,uint256)":{"notice":"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`."},"gameAtIndex(uint256)":{"notice":"`gameAtIndex` returns the dispute game contract address and its creation timestamp at the given index. Each created dispute game increments the underlying index."},"gameCount()":{"notice":"The total number of dispute games created by this factory."},"gameImpls(uint32)":{"notice":"`gameImpls` is a mapping that maps `GameType`s to their respective `IDisputeGame` implementations."},"games(uint32,bytes32,bytes)":{"notice":"`games` queries an internal mapping that maps the hash of `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone."},"getGameUUID(uint32,bytes32,bytes)":{"notice":"Returns a unique identifier for the given dispute game parameters."},"initBonds(uint32)":{"notice":"Returns the required bonds for initializing a dispute game of the given type."},"initialize(address)":{"notice":"Initializes the contract."},"setImplementation(uint32,address)":{"notice":"Sets the implementation contract for a specific `GameType`."},"setInitBond(uint32,uint256)":{"notice":"Sets the bond (in wei) for initializing a game type."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/DisputeGameFactory.sol":"DisputeGameFactory"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/solady/src/utils/LibClone.sol":{"keccak256":"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4","urls":["bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e","dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN"],"license":"MIT"},"src/dispute/DisputeGameFactory.sol":{"keccak256":"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f","urls":["bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f","dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b","urls":["bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a","dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6"],"license":"MIT"},"src/dispute/interfaces/IDisputeGameFactory.sol":{"keccak256":"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda","urls":["bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd","dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6","urls":["bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48","dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f","urls":["bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046","dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937","urls":["bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e","dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c","urls":["bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961","dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":46970,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":48501,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":46842,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":46962,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":97221,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"gameImpls","offset":0,"slot":"101","type":"t_mapping(t_userDefinedValueType(GameType)103271,t_contract(IDisputeGame)100327)"},{"astId":97227,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"initBonds","offset":0,"slot":"102","type":"t_mapping(t_userDefinedValueType(GameType)103271,t_uint256)"},{"astId":97234,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_disputeGames","offset":0,"slot":"103","type":"t_mapping(t_userDefinedValueType(Hash)103253,t_userDefinedValueType(GameId)103265)"},{"astId":97239,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_disputeGameList","offset":0,"slot":"104","type":"t_array(t_userDefinedValueType(GameId)103265)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_array(t_userDefinedValueType(GameId)103265)dyn_storage":{"encoding":"dynamic_array","label":"GameId[]","numberOfBytes":"32","base":"t_userDefinedValueType(GameId)103265"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IDisputeGame)100327":{"encoding":"inplace","label":"contract IDisputeGame","numberOfBytes":"20"},"t_mapping(t_userDefinedValueType(GameType)103271,t_contract(IDisputeGame)100327)":{"encoding":"mapping","key":"t_userDefinedValueType(GameType)103271","label":"mapping(GameType => contract IDisputeGame)","numberOfBytes":"32","value":"t_contract(IDisputeGame)100327"},"t_mapping(t_userDefinedValueType(GameType)103271,t_uint256)":{"encoding":"mapping","key":"t_userDefinedValueType(GameType)103271","label":"mapping(GameType => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_userDefinedValueType(Hash)103253,t_userDefinedValueType(GameId)103265)":{"encoding":"mapping","key":"t_userDefinedValueType(Hash)103253","label":"mapping(Hash => GameId)","numberOfBytes":"32","value":"t_userDefinedValueType(GameId)103265"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_userDefinedValueType(GameId)103265":{"encoding":"inplace","label":"GameId","numberOfBytes":"32"},"t_userDefinedValueType(GameType)103271":{"encoding":"inplace","label":"GameType","numberOfBytes":"4"},"t_userDefinedValueType(Hash)103253":{"encoding":"inplace","label":"Hash","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":{"notice":"Constructs a new DisputeGameFactory contract."},"create(uint32,bytes32,bytes)":{"notice":"Creates a new DisputeGame proxy contract."},"findLatestGames(uint32,uint256,uint256)":{"notice":"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`."},"gameAtIndex(uint256)":{"notice":"`gameAtIndex` returns the dispute game contract address and its creation timestamp at the given index. Each created dispute game increments the underlying index."},"gameCount()":{"notice":"The total number of dispute games created by this factory."},"gameImpls(uint32)":{"notice":"`gameImpls` is a mapping that maps `GameType`s to their respective `IDisputeGame` implementations."},"games(uint32,bytes32,bytes)":{"notice":"`games` queries an internal mapping that maps the hash of `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone."},"getGameUUID(uint32,bytes32,bytes)":{"notice":"Returns a unique identifier for the given dispute game parameters."},"initBonds(uint32)":{"notice":"Returns the required bonds for initializing a dispute game of the given type."},"initialize(address)":{"notice":"Initializes the contract."},"setImplementation(uint32,address)":{"notice":"Sets the implementation contract for a specific `GameType`."},"setInitBond(uint32,uint256)":{"notice":"Sets the bond (in wei) for initializing a game type."},"version()":{"notice":"Semantic version."}},"events":{"DisputeGameCreated(address,uint32,bytes32)":{"notice":"Emitted when a new dispute game is created"},"ImplementationSet(address,uint32)":{"notice":"Emitted when a new game implementation added to the factory"},"InitBondUpdated(uint32,uint256)":{"notice":"Emitted when a game type's initialization bond is updated"}},"errors":{"GameAlreadyExists(bytes32)":[{"notice":"Thrown when a dispute game that already exists is attempted to be created."}],"IncorrectBondAmount()":[{"notice":"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction."}],"NoImplementation(uint32)":[{"notice":"Thrown when a dispute game is attempted to be created with an unsupported game type."}]},"notice":"A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly into the storage slot with the address of the dispute game to make offchain discoverability of playable dispute games easier."},"devdoc":{"version":1,"kind":"dev","methods":{"create(uint32,bytes32,bytes)":{"params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The address of the created DisputeGame proxy."}},"findLatestGames(uint32,uint256,uint256)":{"params":{"_gameType":"The type of game to find.","_n":"The number of games to find.","_start":"The index to start the reverse search from."}},"gameAtIndex(uint256)":{"params":{"_index":"The index of the dispute game."},"returns":{"gameType_":"The type of the DisputeGame - used to decide the proxy implementation.","proxy_":"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"gameCount()":{"returns":{"gameCount_":"The total number of dispute games created by this factory."}},"games(uint32,bytes32,bytes)":{"details":"`++` equates to concatenation.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The clone of the `DisputeGame` created with the given parameters. Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"getGameUUID(uint32,bytes32,bytes)":{"details":"Hashes the concatenation of `gameType . rootClaim . extraData` without expanding memory.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"uuid_":"The unique identifier for the given dispute game parameters."}},"initialize(address)":{"params":{"_owner":"The owner of the contract."}},"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setImplementation(uint32,address)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_impl":"The implementation contract for the given `GameType`."}},"setInitBond(uint32,uint256)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_initBond":"The bond (in wei) for initializing a game type."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"errors":{"GameAlreadyExists(bytes32)":[{"params":{"uuid":"The UUID of the dispute game that already exists."}}],"NoImplementation(uint32)":[{"params":{"gameType":"The unsupported game type."}}]},"title":"DisputeGameFactory"},"ast":{"absolutePath":"src/dispute/DisputeGameFactory.sol","id":97683,"exportedSymbols":{"AlreadyInitialized":[103120],"AnchorRootNotFound":[103192],"BadAuth":[103195],"BadExtraData":[103132],"BondAmount":[103259],"BondTransferFailed":[103129],"CannotDefendRootClaim":[103135],"Claim":[103255],"ClaimAboveSplit":[103177],"ClaimAlreadyExists":[103138],"ClaimAlreadyResolved":[103174],"ClaimHash":[103257],"Clock":[103267],"ClockNotExpired":[103150],"ClockTimeExceeded":[103147],"DisputeGameFactory":[97682],"DuplicateStep":[103189],"Duration":[103263],"GameAlreadyExists":[103111],"GameDepthExceeded":[103153],"GameId":[103265],"GameNotInProgress":[103144],"GameStatus":[103277],"GameType":[103271],"GameTypes":[103317],"Hash":[103253],"IDisputeGame":[100327],"IDisputeGameFactory":[100497],"ISemver":[109417],"IncorrectBondAmount":[103123],"InvalidClaim":[103141],"InvalidClockExtension":[103183],"InvalidLocalIdent":[103168],"InvalidParent":[103156],"InvalidPrestate":[103159],"InvalidSplitDepth":[103180],"L1HeadTooOld":[103165],"LibClaim":[101086],"LibClock":[101073],"LibClone":[62767],"LibDuration":[101099],"LibGameId":[100778],"LibGameType":[101151],"LibHash":[101112],"LibHashing":[100800],"LibPosition":[101018],"LibTimestamp":[101125],"LibVMStatus":[101138],"LocalPreimageKey":[103373],"MaxDepthTooLarge":[103186],"NoCreditToClaim":[103126],"NoImplementation":[103105],"OutOfOrderResolution":[103171],"OutputRoot":[103283],"OwnableUpgradeable":[46963],"Position":[103269],"Timestamp":[103261],"UnexpectedRootClaim":[103117],"VMStatus":[103273],"VMStatuses":[103351],"ValidStep":[103162]},"nodeType":"SourceUnit","src":"32:8414:163","nodes":[{"id":97186,"nodeType":"PragmaDirective","src":"32:23:163","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97188,"nodeType":"ImportDirective","src":"57:54:163","nodes":[],"absolutePath":"lib/solady/src/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":62768,"symbolAliases":[{"foreign":{"id":97187,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62767,"src":"66:8:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97190,"nodeType":"ImportDirective","src":"112:103:163","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":46964,"symbolAliases":[{"foreign":{"id":97189,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46963,"src":"121:18:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97192,"nodeType":"ImportDirective","src":"216:52:163","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":97191,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"225:7:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97194,"nodeType":"ImportDirective","src":"270:71:163","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","file":"src/dispute/interfaces/IDisputeGame.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100328,"symbolAliases":[{"foreign":{"id":97193,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"279:12:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97196,"nodeType":"ImportDirective","src":"342:85:163","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGameFactory.sol","file":"src/dispute/interfaces/IDisputeGameFactory.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100498,"symbolAliases":[{"foreign":{"id":97195,"name":"IDisputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100497,"src":"351:19:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97198,"nodeType":"ImportDirective","src":"429:58:163","nodes":[],"absolutePath":"src/dispute/lib/LibGameId.sol","file":"src/dispute/lib/LibGameId.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100779,"symbolAliases":[{"foreign":{"id":97197,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100778,"src":"438:9:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97199,"nodeType":"ImportDirective","src":"489:40:163","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":103374,"symbolAliases":[],"unitAlias":""},{"id":97200,"nodeType":"ImportDirective","src":"530:41:163","nodes":[],"absolutePath":"src/libraries/DisputeErrors.sol","file":"src/libraries/DisputeErrors.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":103196,"symbolAliases":[],"unitAlias":""},{"id":97682,"nodeType":"ContractDefinition","src":"989:7456:163","nodes":[{"id":97210,"nodeType":"UsingForDirective","src":"1155:27:163","nodes":[],"global":false,"libraryName":{"id":97208,"name":"LibClone","nodeType":"IdentifierPath","referencedDeclaration":62767,"src":"1161:8:163"},"typeName":{"id":97209,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":97214,"nodeType":"VariableDeclaration","src":"1251:40:163","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":97211,"nodeType":"StructuredDocumentation","src":"1188:58:163","text":"@notice Semantic version.\n @custom:semver 0.6.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1274:7:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97212,"name":"string","nodeType":"ElementaryTypeName","src":"1251:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"302e362e30","id":97213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1284:7:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_98293d924c2515c22d1d357dd5a43b88356a9d20201dd01f3afa1023505a904d","typeString":"literal_string \"0.6.0\""},"value":"0.6.0"},"visibility":"public"},{"id":97221,"nodeType":"VariableDeclaration","src":"1338:50:163","nodes":[],"baseFunctions":[100423],"constant":false,"documentation":{"id":97215,"nodeType":"StructuredDocumentation","src":"1298:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"1b685b9e","mutability":"mutable","name":"gameImpls","nameLocation":"1379:9:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"},"typeName":{"id":97220,"keyType":{"id":97217,"nodeType":"UserDefinedTypeName","pathNode":{"id":97216,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"1346:8:163"},"referencedDeclaration":103271,"src":"1346:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Mapping","src":"1338:33:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"},"valueType":{"id":97219,"nodeType":"UserDefinedTypeName","pathNode":{"id":97218,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"1358:12:163"},"referencedDeclaration":100327,"src":"1358:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}},"visibility":"public"},{"id":97227,"nodeType":"VariableDeclaration","src":"1435:45:163","nodes":[],"baseFunctions":[100432],"constant":false,"documentation":{"id":97222,"nodeType":"StructuredDocumentation","src":"1395:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"6593dc6e","mutability":"mutable","name":"initBonds","nameLocation":"1471:9:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"},"typeName":{"id":97226,"keyType":{"id":97224,"nodeType":"UserDefinedTypeName","pathNode":{"id":97223,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"1443:8:163"},"referencedDeclaration":103271,"src":"1443:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Mapping","src":"1435:28:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"},"valueType":{"id":97225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":97234,"nodeType":"VariableDeclaration","src":"1650:46:163","nodes":[],"constant":false,"documentation":{"id":97228,"nodeType":"StructuredDocumentation","src":"1487:113:163","text":"@notice Mapping of a hash of `gameType || rootClaim || extraData` to the deployed `IDisputeGame` clone (where"},"mutability":"mutable","name":"_disputeGames","nameLocation":"1683:13:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"},"typeName":{"id":97233,"keyType":{"id":97230,"nodeType":"UserDefinedTypeName","pathNode":{"id":97229,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"1658:4:163"},"referencedDeclaration":103253,"src":"1658:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Mapping","src":"1650:23:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"},"valueType":{"id":97232,"nodeType":"UserDefinedTypeName","pathNode":{"id":97231,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"1666:6:163"},"referencedDeclaration":103265,"src":"1666:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}},"visibility":"internal"},{"id":97239,"nodeType":"VariableDeclaration","src":"1862:34:163","nodes":[],"constant":false,"documentation":{"id":97235,"nodeType":"StructuredDocumentation","src":"1703:154:163","text":"@notice An append-only array of disputeGames that have been created. Used by offchain game solvers to\n efficiently track dispute games."},"mutability":"mutable","name":"_disputeGameList","nameLocation":"1880:16:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[]"},"typeName":{"baseType":{"id":97237,"nodeType":"UserDefinedTypeName","pathNode":{"id":97236,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"1862:6:163"},"referencedDeclaration":103265,"src":"1862:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97238,"nodeType":"ArrayTypeName","src":"1862:8:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr","typeString":"GameId[]"}},"visibility":"internal"},{"id":97253,"nodeType":"FunctionDefinition","src":"1965:74:163","nodes":[],"body":{"id":97252,"nodeType":"Block","src":"2000:39:163","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":97248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2029:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2021:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97246,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:163","typeDescriptions":{}}},"id":97249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2021:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97245,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97269,"src":"2010:10:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":97250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2010:22:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97251,"nodeType":"ExpressionStatement","src":"2010:22:163"}]},"documentation":{"id":97240,"nodeType":"StructuredDocumentation","src":"1903:57:163","text":"@notice Constructs a new DisputeGameFactory contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":97243,"kind":"baseConstructorSpecifier","modifierName":{"id":97242,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46963,"src":"1979:18:163"},"nodeType":"ModifierInvocation","src":"1979:20:163"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":97241,"nodeType":"ParameterList","parameters":[],"src":"1976:2:163"},"returnParameters":{"id":97244,"nodeType":"ParameterList","parameters":[],"src":"2000:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97269,"nodeType":"FunctionDefinition","src":"2136:124:163","nodes":[],"body":{"id":97268,"nodeType":"Block","src":"2191:69:163","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":97261,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46858,"src":"2201:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":97262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:16:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97263,"nodeType":"ExpressionStatement","src":"2201:16:163"},{"expression":{"arguments":[{"id":97265,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97256,"src":"2246:6:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97264,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46957,"src":"2227:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":97266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2227:26:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97267,"nodeType":"ExpressionStatement","src":"2227:26:163"}]},"documentation":{"id":97254,"nodeType":"StructuredDocumentation","src":"2045:86:163","text":"@notice Initializes the contract.\n @param _owner The owner of the contract."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":97259,"kind":"modifierInvocation","modifierName":{"id":97258,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"2179:11:163"},"nodeType":"ModifierInvocation","src":"2179:11:163"}],"name":"initialize","nameLocation":"2145:10:163","parameters":{"id":97257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97256,"mutability":"mutable","name":"_owner","nameLocation":"2164:6:163","nodeType":"VariableDeclaration","scope":97269,"src":"2156:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97255,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2155:16:163"},"returnParameters":{"id":97260,"nodeType":"ParameterList","parameters":[],"src":"2191:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97281,"nodeType":"FunctionDefinition","src":"2306:117:163","nodes":[],"body":{"id":97280,"nodeType":"Block","src":"2370:53:163","nodes":[],"statements":[{"expression":{"id":97278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97275,"name":"gameCount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97273,"src":"2380:10:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":97276,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"2393:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2393:23:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2380:36:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97279,"nodeType":"ExpressionStatement","src":"2380:36:163"}]},"baseFunctions":[100380],"documentation":{"id":97270,"nodeType":"StructuredDocumentation","src":"2266:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"4d1975b4","implemented":true,"kind":"function","modifiers":[],"name":"gameCount","nameLocation":"2315:9:163","parameters":{"id":97271,"nodeType":"ParameterList","parameters":[],"src":"2324:2:163"},"returnParameters":{"id":97274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97273,"mutability":"mutable","name":"gameCount_","nameLocation":"2358:10:163","nodeType":"VariableDeclaration","scope":97281,"src":"2350:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2350:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2349:20:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97319,"nodeType":"FunctionDefinition","src":"2469:342:163","nodes":[],"body":{"id":97318,"nodeType":"Block","src":"2673:138:163","nodes":[],"statements":[{"assignments":[97301],"declarations":[{"constant":false,"id":97301,"mutability":"mutable","name":"uuid","nameLocation":"2688:4:163","nodeType":"VariableDeclaration","scope":97318,"src":"2683:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97300,"nodeType":"UserDefinedTypeName","pathNode":{"id":97299,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"2683:4:163"},"referencedDeclaration":103253,"src":"2683:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":97307,"initialValue":{"arguments":[{"id":97303,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97285,"src":"2707:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97304,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97288,"src":"2718:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97305,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97290,"src":"2730:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97302,"name":"getGameUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97522,"src":"2695:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$_t_bytes_calldata_ptr_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (GameType,Claim,bytes calldata) pure returns (Hash)"}},"id":97306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2695:46:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"2683:58:163"},{"expression":{"id":97316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":97308,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97297,"src":"2754:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97309,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97294,"src":"2766:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"id":97310,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2751:22:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(,Timestamp,contract IDisputeGame)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":97311,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"2776:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97313,"indexExpression":{"id":97312,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97301,"src":"2790:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2776:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"2776:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2776:28:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"src":"2751:53:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97317,"nodeType":"ExpressionStatement","src":"2751:53:163"}]},"baseFunctions":[100398],"documentation":{"id":97282,"nodeType":"StructuredDocumentation","src":"2429:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"5f0150cb","implemented":true,"kind":"function","modifiers":[],"name":"games","nameLocation":"2478:5:163","parameters":{"id":97291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97285,"mutability":"mutable","name":"_gameType","nameLocation":"2502:9:163","nodeType":"VariableDeclaration","scope":97319,"src":"2493:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97284,"nodeType":"UserDefinedTypeName","pathNode":{"id":97283,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"2493:8:163"},"referencedDeclaration":103271,"src":"2493:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97288,"mutability":"mutable","name":"_rootClaim","nameLocation":"2527:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2521:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97287,"nodeType":"UserDefinedTypeName","pathNode":{"id":97286,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"2521:5:163"},"referencedDeclaration":103255,"src":"2521:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97290,"mutability":"mutable","name":"_extraData","nameLocation":"2562:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2547:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97289,"name":"bytes","nodeType":"ElementaryTypeName","src":"2547:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2483:95:163"},"returnParameters":{"id":97298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97294,"mutability":"mutable","name":"proxy_","nameLocation":"2639:6:163","nodeType":"VariableDeclaration","scope":97319,"src":"2626:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97293,"nodeType":"UserDefinedTypeName","pathNode":{"id":97292,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"2626:12:163"},"referencedDeclaration":100327,"src":"2626:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"},{"constant":false,"id":97297,"mutability":"mutable","name":"timestamp_","nameLocation":"2657:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2647:20:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97296,"nodeType":"UserDefinedTypeName","pathNode":{"id":97295,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"2647:9:163"},"referencedDeclaration":103261,"src":"2647:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2625:43:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97346,"nodeType":"FunctionDefinition","src":"2857:235:163","nodes":[],"body":{"id":97345,"nodeType":"Block","src":"3008:84:163","nodes":[],"statements":[{"expression":{"id":97343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":97334,"name":"gameType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97326,"src":"3019:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97335,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97329,"src":"3030:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97336,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97332,"src":"3042:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"id":97337,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3018:31:163","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":97338,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"3052:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97340,"indexExpression":{"id":97339,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97322,"src":"3069:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3052:24:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"3052:31:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3052:33:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"src":"3018:67:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97344,"nodeType":"ExpressionStatement","src":"3018:67:163"}]},"baseFunctions":[100413],"documentation":{"id":97320,"nodeType":"StructuredDocumentation","src":"2817:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"bb8aa1fc","implemented":true,"kind":"function","modifiers":[],"name":"gameAtIndex","nameLocation":"2866:11:163","parameters":{"id":97323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97322,"mutability":"mutable","name":"_index","nameLocation":"2886:6:163","nodeType":"VariableDeclaration","scope":97346,"src":"2878:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97321,"name":"uint256","nodeType":"ElementaryTypeName","src":"2878:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2877:16:163"},"returnParameters":{"id":97333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97326,"mutability":"mutable","name":"gameType_","nameLocation":"2950:9:163","nodeType":"VariableDeclaration","scope":97346,"src":"2941:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97325,"nodeType":"UserDefinedTypeName","pathNode":{"id":97324,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"2941:8:163"},"referencedDeclaration":103271,"src":"2941:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97329,"mutability":"mutable","name":"timestamp_","nameLocation":"2971:10:163","nodeType":"VariableDeclaration","scope":97346,"src":"2961:20:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97328,"nodeType":"UserDefinedTypeName","pathNode":{"id":97327,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"2961:9:163"},"referencedDeclaration":103261,"src":"2961:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":97332,"mutability":"mutable","name":"proxy_","nameLocation":"2996:6:163","nodeType":"VariableDeclaration","scope":97346,"src":"2983:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97331,"nodeType":"UserDefinedTypeName","pathNode":{"id":97330,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"2983:12:163"},"referencedDeclaration":100327,"src":"2983:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"2940:63:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97492,"nodeType":"FunctionDefinition","src":"3138:2553:163","nodes":[],"body":{"id":97491,"nodeType":"Block","src":"3324:2367:163","nodes":[],"statements":[{"assignments":[97363],"declarations":[{"constant":false,"id":97363,"mutability":"mutable","name":"impl","nameLocation":"3417:4:163","nodeType":"VariableDeclaration","scope":97491,"src":"3404:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97362,"nodeType":"UserDefinedTypeName","pathNode":{"id":97361,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"3404:12:163"},"referencedDeclaration":100327,"src":"3404:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":97367,"initialValue":{"baseExpression":{"id":97364,"name":"gameImpls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97221,"src":"3424:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"}},"id":97366,"indexExpression":{"id":97365,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3434:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3424:20:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"VariableDeclarationStatement","src":"3404:40:163"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":97370,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97363,"src":"3551:4:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3543:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97368,"name":"address","nodeType":"ElementaryTypeName","src":"3543:7:163","typeDescriptions":{}}},"id":97371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3543:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":97374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3568:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3560:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97372,"name":"address","nodeType":"ElementaryTypeName","src":"3560:7:163","typeDescriptions":{}}},"id":97375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3560:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3543:27:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97381,"nodeType":"IfStatement","src":"3539:67:163","trueBody":{"errorCall":{"arguments":[{"id":97378,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3596:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"id":97377,"name":"NoImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103105,"src":"3579:16:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_GameType_$103271_$returns$__$","typeString":"function (GameType) pure"}},"id":97379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3579:27:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97380,"nodeType":"RevertStatement","src":"3572:34:163"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97382,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3688:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3688:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":97384,"name":"initBonds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97227,"src":"3701:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"}},"id":97386,"indexExpression":{"id":97385,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3711:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3701:20:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3688:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97391,"nodeType":"IfStatement","src":"3684:67:163","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97388,"name":"IncorrectBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103123,"src":"3730:19:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3730:21:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97390,"nodeType":"RevertStatement","src":"3723:28:163"}},{"assignments":[97393],"declarations":[{"constant":false,"id":97393,"mutability":"mutable","name":"parentHash","nameLocation":"3815:10:163","nodeType":"VariableDeclaration","scope":97491,"src":"3807:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":97400,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97395,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3838:5:163","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":97396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"3838:12:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":97397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3853:1:163","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3838:16:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97394,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"3828:9:163","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":97399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3828:27:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3807:48:163"},{"expression":{"id":97418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97401,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"4868:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":97410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4927:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4927:10:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97412,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"4939:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97413,"name":"parentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97393,"src":"4951:10:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97414,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97355,"src":"4963:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":97408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4910:3:163","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4910:16:163","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":97415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4910:64:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":97405,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97363,"src":"4898:4:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4890:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97403,"name":"address","nodeType":"ElementaryTypeName","src":"4890:7:163","typeDescriptions":{}}},"id":97406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4890:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":97407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"clone","nodeType":"MemberAccess","referencedDeclaration":62515,"src":"4890:19:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_address_$","typeString":"function (address,bytes memory) returns (address)"}},"id":97416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4890:85:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97402,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"4877:12:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDisputeGame_$100327_$","typeString":"type(contract IDisputeGame)"}},"id":97417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4877:99:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"src":"4868:108:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97419,"nodeType":"ExpressionStatement","src":"4868:108:163"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":97420,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"4986:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":100615,"src":"4986:17:163","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":97425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":97423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5012:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"5012:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4986:37:163","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":97426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4986:39:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97427,"nodeType":"ExpressionStatement","src":"4986:39:163"},{"assignments":[97430],"declarations":[{"constant":false,"id":97430,"mutability":"mutable","name":"uuid","nameLocation":"5104:4:163","nodeType":"VariableDeclaration","scope":97491,"src":"5099:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97429,"nodeType":"UserDefinedTypeName","pathNode":{"id":97428,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"5099:4:163"},"referencedDeclaration":103253,"src":"5099:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":97436,"initialValue":{"arguments":[{"id":97432,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5123:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97433,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"5134:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97434,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97355,"src":"5146:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97431,"name":"getGameUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97522,"src":"5111:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$_t_bytes_calldata_ptr_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (GameType,Claim,bytes calldata) pure returns (Hash)"}},"id":97435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5111:46:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"5099:58:163"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":97447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":97439,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"5258:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97441,"indexExpression":{"id":97440,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5272:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5258:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}],"expression":{"id":97437,"name":"GameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103265,"src":"5244:6:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameId_$103265_$","typeString":"type(GameId)"}},"id":97438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"5244:13:163","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_bytes32_$","typeString":"function (GameId) pure returns (bytes32)"}},"id":97442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5244:34:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":97445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5290:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":97443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5282:7:163","typeDescriptions":{}}},"id":97446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5282:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5244:48:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97452,"nodeType":"IfStatement","src":"5240:84:163","trueBody":{"errorCall":{"arguments":[{"id":97449,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5319:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}],"id":97448,"name":"GameAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103111,"src":"5301:17:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_Hash_$103253_$returns$__$","typeString":"function (Hash) pure"}},"id":97450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5301:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97451,"nodeType":"RevertStatement","src":"5294:30:163"}},{"assignments":[97455],"declarations":[{"constant":false,"id":97455,"mutability":"mutable","name":"id","nameLocation":"5371:2:163","nodeType":"VariableDeclaration","scope":97491,"src":"5364:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},"typeName":{"id":97454,"nodeType":"UserDefinedTypeName","pathNode":{"id":97453,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"5364:6:163"},"referencedDeclaration":103265,"src":"5364:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"visibility":"internal"}],"id":97469,"initialValue":{"arguments":[{"id":97458,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5391:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"arguments":[{"arguments":[{"expression":{"id":97463,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5424:5:163","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":97464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5424:15:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5417:6:163","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":97461,"name":"uint64","nodeType":"ElementaryTypeName","src":"5417:6:163","typeDescriptions":{}}},"id":97465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5417:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":97459,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"5402:9:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":97460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"5402:14:163","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":97466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5402:39:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97467,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"5443:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"expression":{"id":97456,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100778,"src":"5376:9:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGameId_$100778_$","typeString":"type(library LibGameId)"}},"id":97457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pack","nodeType":"MemberAccess","referencedDeclaration":100759,"src":"5376:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$returns$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameType,Timestamp,contract IDisputeGame) pure returns (GameId)"}},"id":97468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5376:74:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"VariableDeclarationStatement","src":"5364:86:163"},{"expression":{"id":97474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97470,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"5552:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97472,"indexExpression":{"id":97471,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5566:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5552:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97473,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97455,"src":"5574:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"src":"5552:24:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97475,"nodeType":"ExpressionStatement","src":"5552:24:163"},{"expression":{"arguments":[{"id":97479,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97455,"src":"5608:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}],"expression":{"id":97476,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"5586:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5586:21:163","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr_$_t_userDefinedValueType$_GameId_$103265_$returns$__$bound_to$_t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr_$","typeString":"function (GameId[] storage pointer,GameId)"}},"id":97480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5586:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97481,"nodeType":"ExpressionStatement","src":"5586:25:163"},{"eventCall":{"arguments":[{"arguments":[{"id":97485,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"5653:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5645:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97483,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:163","typeDescriptions":{}}},"id":97486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5645:15:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97487,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5662:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97488,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"5673:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}],"id":97482,"name":"DisputeGameCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100344,"src":"5626:18:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$returns$__$","typeString":"function (address,GameType,Claim)"}},"id":97489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5626:58:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97490,"nodeType":"EmitStatement","src":"5621:63:163"}]},"baseFunctions":[100447],"documentation":{"id":97347,"nodeType":"StructuredDocumentation","src":"3098:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"82ecf2f6","implemented":true,"kind":"function","modifiers":[],"name":"create","nameLocation":"3147:6:163","parameters":{"id":97356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97350,"mutability":"mutable","name":"_gameType","nameLocation":"3172:9:163","nodeType":"VariableDeclaration","scope":97492,"src":"3163:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97349,"nodeType":"UserDefinedTypeName","pathNode":{"id":97348,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"3163:8:163"},"referencedDeclaration":103271,"src":"3163:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97353,"mutability":"mutable","name":"_rootClaim","nameLocation":"3197:10:163","nodeType":"VariableDeclaration","scope":97492,"src":"3191:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97352,"nodeType":"UserDefinedTypeName","pathNode":{"id":97351,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"3191:5:163"},"referencedDeclaration":103255,"src":"3191:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97355,"mutability":"mutable","name":"_extraData","nameLocation":"3232:10:163","nodeType":"VariableDeclaration","scope":97492,"src":"3217:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97354,"name":"bytes","nodeType":"ElementaryTypeName","src":"3217:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3153:95:163"},"returnParameters":{"id":97360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97359,"mutability":"mutable","name":"proxy_","nameLocation":"3312:6:163","nodeType":"VariableDeclaration","scope":97492,"src":"3299:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97358,"nodeType":"UserDefinedTypeName","pathNode":{"id":97357,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"3299:12:163"},"referencedDeclaration":100327,"src":"3299:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"3298:21:163"},"scope":97682,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":97522,"nodeType":"FunctionDefinition","src":"5737:269:163","nodes":[],"body":{"id":97521,"nodeType":"Block","src":"5914:92:163","nodes":[],"statements":[{"expression":{"id":97519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97507,"name":"uuid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97505,"src":"5924:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":97513,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97496,"src":"5963:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97514,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97499,"src":"5974:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97515,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97501,"src":"5986:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":97511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5952:3:163","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5952:10:163","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":97516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5952:45:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97510,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5942:9:163","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":97517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5942:56:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":97508,"name":"Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103253,"src":"5932:4:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Hash_$103253_$","typeString":"type(Hash)"}},"id":97509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"5932:9:163","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (bytes32) pure returns (Hash)"}},"id":97518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5932:67:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"5924:75:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":97520,"nodeType":"ExpressionStatement","src":"5924:75:163"}]},"baseFunctions":[100481],"documentation":{"id":97493,"nodeType":"StructuredDocumentation","src":"5697:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"96cd9720","implemented":true,"kind":"function","modifiers":[],"name":"getGameUUID","nameLocation":"5746:11:163","parameters":{"id":97502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97496,"mutability":"mutable","name":"_gameType","nameLocation":"5776:9:163","nodeType":"VariableDeclaration","scope":97522,"src":"5767:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97495,"nodeType":"UserDefinedTypeName","pathNode":{"id":97494,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"5767:8:163"},"referencedDeclaration":103271,"src":"5767:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97499,"mutability":"mutable","name":"_rootClaim","nameLocation":"5801:10:163","nodeType":"VariableDeclaration","scope":97522,"src":"5795:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97498,"nodeType":"UserDefinedTypeName","pathNode":{"id":97497,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"5795:5:163"},"referencedDeclaration":103255,"src":"5795:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97501,"mutability":"mutable","name":"_extraData","nameLocation":"5836:10:163","nodeType":"VariableDeclaration","scope":97522,"src":"5821:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97500,"name":"bytes","nodeType":"ElementaryTypeName","src":"5821:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5757:95:163"},"returnParameters":{"id":97506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97505,"mutability":"mutable","name":"uuid_","nameLocation":"5903:5:163","nodeType":"VariableDeclaration","scope":97522,"src":"5898:10:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97504,"nodeType":"UserDefinedTypeName","pathNode":{"id":97503,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"5898:4:163"},"referencedDeclaration":103253,"src":"5898:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"5897:12:163"},"scope":97682,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":97631,"nodeType":"FunctionDefinition","src":"6052:1929:163","nodes":[],"body":{"id":97630,"nodeType":"Block","src":"6240:1741:163","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97537,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6374:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":97538,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"6384:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6384:23:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97541,"name":"_n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97530,"src":"6411:2:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":97542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6417:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6411:7:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6374:44:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97547,"nodeType":"IfStatement","src":"6370:63:163","trueBody":{"expression":{"id":97545,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"6427:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"functionReturnParameters":97536,"id":97546,"nodeType":"Return","src":"6420:13:163"}},{"AST":{"nodeType":"YulBlock","src":"6660:109:163","statements":[{"nodeType":"YulAssignment","src":"6674:21:163","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6690:4:163","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6684:5:163"},"nodeType":"YulFunctionCall","src":"6684:11:163"},"variableNames":[{"name":"games_","nodeType":"YulIdentifier","src":"6674:6:163"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6715:4:163","type":"","value":"0x40"},{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"6725:6:163"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6737:4:163","type":"","value":"0x20"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6747:4:163","type":"","value":"0x05"},{"name":"_n","nodeType":"YulIdentifier","src":"6753:2:163"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6743:3:163"},"nodeType":"YulFunctionCall","src":"6743:13:163"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6733:3:163"},"nodeType":"YulFunctionCall","src":"6733:24:163"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6721:3:163"},"nodeType":"YulFunctionCall","src":"6721:37:163"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6708:6:163"},"nodeType":"YulFunctionCall","src":"6708:51:163"},"nodeType":"YulExpressionStatement","src":"6708:51:163"}]},"evmVersion":"london","externalReferences":[{"declaration":97530,"isOffset":false,"isSlot":false,"src":"6753:2:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"6674:6:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"6725:6:163","valueSize":1}],"id":97548,"nodeType":"InlineAssembly","src":"6651:118:163"},{"body":{"id":97628,"nodeType":"Block","src":"6923:1052:163","statements":[{"assignments":[97562],"declarations":[{"constant":false,"id":97562,"mutability":"mutable","name":"id","nameLocation":"6944:2:163","nodeType":"VariableDeclaration","scope":97628,"src":"6937:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},"typeName":{"id":97561,"nodeType":"UserDefinedTypeName","pathNode":{"id":97560,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"6937:6:163"},"referencedDeclaration":103265,"src":"6937:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"visibility":"internal"}],"id":97566,"initialValue":{"baseExpression":{"id":97563,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"6949:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97565,"indexExpression":{"id":97564,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6966:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6949:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"VariableDeclarationStatement","src":"6937:31:163"},{"assignments":[97569,97572,97575],"declarations":[{"constant":false,"id":97569,"mutability":"mutable","name":"gameType","nameLocation":"6992:8:163","nodeType":"VariableDeclaration","scope":97628,"src":"6983:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97568,"nodeType":"UserDefinedTypeName","pathNode":{"id":97567,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"6983:8:163"},"referencedDeclaration":103271,"src":"6983:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97572,"mutability":"mutable","name":"timestamp","nameLocation":"7012:9:163","nodeType":"VariableDeclaration","scope":97628,"src":"7002:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97571,"nodeType":"UserDefinedTypeName","pathNode":{"id":97570,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"7002:9:163"},"referencedDeclaration":103261,"src":"7002:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":97575,"mutability":"mutable","name":"proxy","nameLocation":"7036:5:163","nodeType":"VariableDeclaration","scope":97628,"src":"7023:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97574,"nodeType":"UserDefinedTypeName","pathNode":{"id":97573,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"7023:12:163"},"referencedDeclaration":100327,"src":"7023:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":97579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97576,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97562,"src":"7045:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"7045:9:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7045:11:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"nodeType":"VariableDeclarationStatement","src":"6982:74:163"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":97586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97580,"name":"gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97569,"src":"7075:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":97581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"7075:12:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":97582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7075:14:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97583,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97526,"src":"7093:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":97584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"7093:13:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":97585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7093:15:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7075:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97623,"nodeType":"IfStatement","src":"7071:834:163","trueBody":{"id":97622,"nodeType":"Block","src":"7110:795:163","statements":[{"AST":{"nodeType":"YulBlock","src":"7377:80:163","statements":[{"expression":{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"7406:6:163"},{"arguments":[{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"7424:6:163"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7418:5:163"},"nodeType":"YulFunctionCall","src":"7418:13:163"},{"kind":"number","nodeType":"YulLiteral","src":"7433:4:163","type":"","value":"0x01"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7414:3:163"},"nodeType":"YulFunctionCall","src":"7414:24:163"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7399:6:163"},"nodeType":"YulFunctionCall","src":"7399:40:163"},"nodeType":"YulExpressionStatement","src":"7399:40:163"}]},"evmVersion":"london","externalReferences":[{"declaration":97535,"isOffset":false,"isSlot":false,"src":"7406:6:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"7424:6:163","valueSize":1}],"id":97587,"nodeType":"InlineAssembly","src":"7368:89:163"},{"assignments":[97589],"declarations":[{"constant":false,"id":97589,"mutability":"mutable","name":"extraData","nameLocation":"7488:9:163","nodeType":"VariableDeclaration","scope":97622,"src":"7475:22:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97588,"name":"bytes","nodeType":"ElementaryTypeName","src":"7475:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":97593,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97590,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97575,"src":"7500:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":100307,"src":"7500:15:163","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure external returns (bytes memory)"}},"id":97592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7500:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7475:42:163"},{"assignments":[97596],"declarations":[{"constant":false,"id":97596,"mutability":"mutable","name":"rootClaim","nameLocation":"7541:9:163","nodeType":"VariableDeclaration","scope":97622,"src":"7535:15:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97595,"nodeType":"UserDefinedTypeName","pathNode":{"id":97594,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"7535:5:163"},"referencedDeclaration":103255,"src":"7535:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"id":97600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97597,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97575,"src":"7553:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rootClaim","nodeType":"MemberAccess","referencedDeclaration":100294,"src":"7553:15:163","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure external returns (Claim)"}},"id":97599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7553:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"VariableDeclarationStatement","src":"7535:35:163"},{"expression":{"id":97614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97601,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7588:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97606,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97602,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7595:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7595:13:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":97604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7611:1:163","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7595:17:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7588:25:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":97608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"7662:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97609,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97562,"src":"7695:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},{"id":97610,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97572,"src":"7730:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97611,"name":"rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97596,"src":"7772:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97612,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97589,"src":"7814:9:163","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97607,"name":"GameSearchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100374,"src":"7616:16:163","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GameSearchResult_$100374_storage_ptr_$","typeString":"type(struct IDisputeGameFactory.GameSearchResult storage pointer)"}},"id":97613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["index","metadata","timestamp","rootClaim","extraData"],"nodeType":"FunctionCall","src":"7616:226:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"src":"7588:254:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"id":97615,"nodeType":"ExpressionStatement","src":"7588:254:163"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97616,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7864:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7864:13:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":97618,"name":"_n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97530,"src":"7881:2:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:19:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97621,"nodeType":"IfStatement","src":"7860:30:163","trueBody":{"id":97620,"nodeType":"Break","src":"7885:5:163"}}]}},{"id":97627,"nodeType":"UncheckedBlock","src":"7919:46:163","statements":[{"expression":{"id":97625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"7947:3:163","subExpression":{"id":97624,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"7947:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97626,"nodeType":"ExpressionStatement","src":"7947:3:163"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6899:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":97554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6904:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6899:6:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97556,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6909:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":97557,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6914:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6909:11:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6899:21:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97629,"initializationExpression":{"assignments":[97550],"declarations":[{"constant":false,"id":97550,"mutability":"mutable","name":"i","nameLocation":"6887:1:163","nodeType":"VariableDeclaration","scope":97629,"src":"6879:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97549,"name":"uint256","nodeType":"ElementaryTypeName","src":"6879:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":97552,"initialValue":{"id":97551,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6891:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6879:18:163"},"nodeType":"ForStatement","src":"6874:1101:163"}]},"baseFunctions":[100496],"documentation":{"id":97523,"nodeType":"StructuredDocumentation","src":"6012:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"254bd683","implemented":true,"kind":"function","modifiers":[],"name":"findLatestGames","nameLocation":"6061:15:163","parameters":{"id":97531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97526,"mutability":"mutable","name":"_gameType","nameLocation":"6095:9:163","nodeType":"VariableDeclaration","scope":97631,"src":"6086:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97525,"nodeType":"UserDefinedTypeName","pathNode":{"id":97524,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"6086:8:163"},"referencedDeclaration":103271,"src":"6086:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97528,"mutability":"mutable","name":"_start","nameLocation":"6122:6:163","nodeType":"VariableDeclaration","scope":97631,"src":"6114:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97527,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97530,"mutability":"mutable","name":"_n","nameLocation":"6146:2:163","nodeType":"VariableDeclaration","scope":97631,"src":"6138:10:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97529,"name":"uint256","nodeType":"ElementaryTypeName","src":"6138:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6076:78:163"},"returnParameters":{"id":97536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97535,"mutability":"mutable","name":"games_","nameLocation":"6228:6:163","nodeType":"VariableDeclaration","scope":97631,"src":"6202:32:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult[]"},"typeName":{"baseType":{"id":97533,"nodeType":"UserDefinedTypeName","pathNode":{"id":97532,"name":"GameSearchResult","nodeType":"IdentifierPath","referencedDeclaration":100374,"src":"6202:16:163"},"referencedDeclaration":100374,"src":"6202:16:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_storage_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult"}},"id":97534,"nodeType":"ArrayTypeName","src":"6202:18:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_storage_$dyn_storage_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult[]"}},"visibility":"internal"}],"src":"6201:34:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97658,"nodeType":"FunctionDefinition","src":"8027:190:163","nodes":[],"body":{"id":97657,"nodeType":"Block","src":"8113:104:163","nodes":[],"statements":[{"expression":{"id":97647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97643,"name":"gameImpls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97221,"src":"8123:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"}},"id":97645,"indexExpression":{"id":97644,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97635,"src":"8133:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8123:20:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97646,"name":"_impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97638,"src":"8146:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"src":"8123:28:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97648,"nodeType":"ExpressionStatement","src":"8123:28:163"},{"eventCall":{"arguments":[{"arguments":[{"id":97652,"name":"_impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97638,"src":"8192:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8184:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97650,"name":"address","nodeType":"ElementaryTypeName","src":"8184:7:163","typeDescriptions":{}}},"id":97653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8184:14:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97654,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97635,"src":"8200:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"id":97649,"name":"ImplementationSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100352,"src":"8166:17:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_GameType_$103271_$returns$__$","typeString":"function (address,GameType)"}},"id":97655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8166:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97656,"nodeType":"EmitStatement","src":"8161:49:163"}]},"baseFunctions":[100457],"documentation":{"id":97632,"nodeType":"StructuredDocumentation","src":"7987:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"14f6b1a3","implemented":true,"kind":"function","modifiers":[{"id":97641,"kind":"modifierInvocation","modifierName":{"id":97640,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46877,"src":"8103:9:163"},"nodeType":"ModifierInvocation","src":"8103:9:163"}],"name":"setImplementation","nameLocation":"8036:17:163","parameters":{"id":97639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97635,"mutability":"mutable","name":"_gameType","nameLocation":"8063:9:163","nodeType":"VariableDeclaration","scope":97658,"src":"8054:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97634,"nodeType":"UserDefinedTypeName","pathNode":{"id":97633,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"8054:8:163"},"referencedDeclaration":103271,"src":"8054:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97638,"mutability":"mutable","name":"_impl","nameLocation":"8087:5:163","nodeType":"VariableDeclaration","scope":97658,"src":"8074:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97637,"nodeType":"UserDefinedTypeName","pathNode":{"id":97636,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"8074:12:163"},"referencedDeclaration":100327,"src":"8074:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"8053:40:163"},"returnParameters":{"id":97642,"nodeType":"ParameterList","parameters":[],"src":"8113:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":97681,"nodeType":"FunctionDefinition","src":"8263:180:163","nodes":[],"body":{"id":97680,"nodeType":"Block","src":"8342:101:163","nodes":[],"statements":[{"expression":{"id":97673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97669,"name":"initBonds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97227,"src":"8352:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"}},"id":97671,"indexExpression":{"id":97670,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97662,"src":"8362:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8352:20:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97672,"name":"_initBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97664,"src":"8375:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8352:32:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97674,"nodeType":"ExpressionStatement","src":"8352:32:163"},{"eventCall":{"arguments":[{"id":97676,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97662,"src":"8415:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97677,"name":"_initBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97664,"src":"8426:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97675,"name":"InitBondUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100360,"src":"8399:15:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$returns$__$","typeString":"function (GameType,uint256)"}},"id":97678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8399:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97679,"nodeType":"EmitStatement","src":"8394:42:163"}]},"baseFunctions":[100466],"documentation":{"id":97659,"nodeType":"StructuredDocumentation","src":"8223:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"1e334240","implemented":true,"kind":"function","modifiers":[{"id":97667,"kind":"modifierInvocation","modifierName":{"id":97666,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46877,"src":"8332:9:163"},"nodeType":"ModifierInvocation","src":"8332:9:163"}],"name":"setInitBond","nameLocation":"8272:11:163","parameters":{"id":97665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97662,"mutability":"mutable","name":"_gameType","nameLocation":"8293:9:163","nodeType":"VariableDeclaration","scope":97681,"src":"8284:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97661,"nodeType":"UserDefinedTypeName","pathNode":{"id":97660,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"8284:8:163"},"referencedDeclaration":103271,"src":"8284:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97664,"mutability":"mutable","name":"_initBond","nameLocation":"8312:9:163","nodeType":"VariableDeclaration","scope":97681,"src":"8304:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97663,"name":"uint256","nodeType":"ElementaryTypeName","src":"8304:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8283:39:163"},"returnParameters":{"id":97668,"nodeType":"ParameterList","parameters":[],"src":"8342:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":97202,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46963,"src":"1020:18:163"},"id":97203,"nodeType":"InheritanceSpecifier","src":"1020:18:163"},{"baseName":{"id":97204,"name":"IDisputeGameFactory","nodeType":"IdentifierPath","referencedDeclaration":100497,"src":"1040:19:163"},"id":97205,"nodeType":"InheritanceSpecifier","src":"1040:19:163"},{"baseName":{"id":97206,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1061:7:163"},"id":97207,"nodeType":"InheritanceSpecifier","src":"1061:7:163"}],"canonicalName":"DisputeGameFactory","contractDependencies":[],"contractKind":"contract","documentation":{"id":97201,"nodeType":"StructuredDocumentation","src":"573:416:163","text":"@title DisputeGameFactory\n @notice A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a\n mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly\n into the storage slot with the address of the dispute game to make offchain discoverability of playable\n dispute games easier."},"fullyImplemented":true,"linearizedBaseContracts":[97682,109417,100497,46963,48502,47114],"name":"DisputeGameFactory","nameLocation":"998:18:163","scope":97683,"usedErrors":[103105,103111,103123]}],"license":"MIT"},"id":163} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/FaultDisputeGame.json b/packages/sdk/src/forge-artifacts/FaultDisputeGame.json new file mode 100644 index 000000000000..0f6ea9b686d0 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/FaultDisputeGame.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_maxGameDepth","type":"uint256","internalType":"uint256"},{"name":"_splitDepth","type":"uint256","internalType":"uint256"},{"name":"_clockExtension","type":"uint64","internalType":"Duration"},{"name":"_maxClockDuration","type":"uint64","internalType":"Duration"},{"name":"_vm","type":"address","internalType":"contract IBigStepper"},{"name":"_weth","type":"address","internalType":"contract IDelayedWETH"},{"name":"_anchorStateRegistry","type":"address","internalType":"contract IAnchorStateRegistry"},{"name":"_l2ChainId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"absolutePrestate","inputs":[],"outputs":[{"name":"absolutePrestate_","type":"bytes32","internalType":"Claim"}],"stateMutability":"view"},{"type":"function","name":"addLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_execLeafIdx","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorStateRegistry","inputs":[],"outputs":[{"name":"registry_","type":"address","internalType":"contract IAnchorStateRegistry"}],"stateMutability":"view"},{"type":"function","name":"attack","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"claimCredit","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimData","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"parentIndex","type":"uint32","internalType":"uint32"},{"name":"counteredBy","type":"address","internalType":"address"},{"name":"claimant","type":"address","internalType":"address"},{"name":"bond","type":"uint128","internalType":"uint128"},{"name":"claim","type":"bytes32","internalType":"Claim"},{"name":"position","type":"uint128","internalType":"Position"},{"name":"clock","type":"uint128","internalType":"Clock"}],"stateMutability":"view"},{"type":"function","name":"claimDataLen","inputs":[],"outputs":[{"name":"len_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claims","inputs":[{"name":"","type":"bytes32","internalType":"ClaimHash"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"clockExtension","inputs":[],"outputs":[{"name":"clockExtension_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"credit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defend","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameCreator","inputs":[],"outputs":[{"name":"creator_","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"getChallengerDuration","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"duration_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"getRequiredBond","inputs":[{"name":"_position","type":"uint128","internalType":"Position"}],"outputs":[{"name":"requiredBond_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"l2BlockNumber","inputs":[],"outputs":[{"name":"l2BlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"l2ChainId","inputs":[],"outputs":[{"name":"l2ChainId_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxClockDuration","inputs":[],"outputs":[{"name":"maxClockDuration_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"maxGameDepth","inputs":[],"outputs":[{"name":"maxGameDepth_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"_challengeIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"},{"name":"_isAttack","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolveClaim","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"resolvedSubgames","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"splitDepth","inputs":[],"outputs":[{"name":"splitDepth_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingBlockNumber","inputs":[],"outputs":[{"name":"startingBlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingOutputRoot","inputs":[],"outputs":[{"name":"root","type":"bytes32","internalType":"Hash"},{"name":"l2BlockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingRootHash","inputs":[],"outputs":[{"name":"startingRootHash_","type":"bytes32","internalType":"Hash"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"},{"name":"_isAttack","type":"bool","internalType":"bool"},{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subgames","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"vm","inputs":[],"outputs":[{"name":"vm_","type":"address","internalType":"contract IBigStepper"}],"stateMutability":"view"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"weth_","type":"address","internalType":"contract IDelayedWETH"}],"stateMutability":"view"},{"type":"event","name":"Move","inputs":[{"name":"parentIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"claim","type":"bytes32","indexed":true,"internalType":"Claim"},{"name":"claimant","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AnchorRootNotFound","inputs":[]},{"type":"error","name":"BondTransferFailed","inputs":[]},{"type":"error","name":"CannotDefendRootClaim","inputs":[]},{"type":"error","name":"ClaimAboveSplit","inputs":[]},{"type":"error","name":"ClaimAlreadyExists","inputs":[]},{"type":"error","name":"ClaimAlreadyResolved","inputs":[]},{"type":"error","name":"ClockNotExpired","inputs":[]},{"type":"error","name":"ClockTimeExceeded","inputs":[]},{"type":"error","name":"DuplicateStep","inputs":[]},{"type":"error","name":"GameDepthExceeded","inputs":[]},{"type":"error","name":"GameNotInProgress","inputs":[]},{"type":"error","name":"IncorrectBondAmount","inputs":[]},{"type":"error","name":"InvalidClockExtension","inputs":[]},{"type":"error","name":"InvalidLocalIdent","inputs":[]},{"type":"error","name":"InvalidParent","inputs":[]},{"type":"error","name":"InvalidPrestate","inputs":[]},{"type":"error","name":"InvalidSplitDepth","inputs":[]},{"type":"error","name":"MaxDepthTooLarge","inputs":[]},{"type":"error","name":"NoCreditToClaim","inputs":[]},{"type":"error","name":"OutOfOrderResolution","inputs":[]},{"type":"error","name":"UnexpectedRootClaim","inputs":[{"name":"rootClaim","type":"bytes32","internalType":"Claim"}]},{"type":"error","name":"ValidStep","inputs":[]}],"bytecode":{"object":"0x6101c06040523480156200001257600080fd5b5060405162004dfd38038062004dfd833981016040819052620000359162000187565b620000436001607e62000248565b60ff168811156200006757604051633beff19960e11b815260040160405180910390fd5b878710620000885760405163e62ccf3960e01b815260040160405180910390fd5b620000a7856001600160401b03166200014e60201b620029041760201c565b6001600160401b0316620000cf876001600160401b03166200014e60201b620029041760201c565b6001600160401b03161115620000f85760405163235dfb2b60e21b815260040160405180910390fd5b63ffffffff9099166101205260809790975260a09590955260c0939093526001600160401b039182166101a0521660e0526001600160a01b0390811661010052908116610140521661016052610180526200027a565b90565b80516001600160401b03811681146200016957600080fd5b919050565b6001600160a01b03811681146200018457600080fd5b50565b6000806000806000806000806000806101408b8d031215620001a857600080fd5b8a5163ffffffff81168114620001bd57600080fd5b809a505060208b0151985060408b0151975060608b01519650620001e460808c0162000151565b9550620001f460a08c0162000151565b945060c08b015162000206816200016e565b60e08c015190945062000219816200016e565b6101008c01519093506200022d816200016e565b809250506101208b015190509295989b9194979a5092959850565b600060ff821660ff8416808210156200027157634e487b7160e01b600052601160045260246000fd5b90039392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614a0b620003f2600039600081816105c60152818161124f0152818161130d015261133701526000818161084a0152612b5501526000818161050b01528181610c1f015261186001526000818161045201528181610da50152818161170701528181611c610152613f310152600081816106a60152818161181f0152612bef01526000818161041f015281816124c6015261281b01526000818161089d015281816111e90152818161127a0152818161136f01528181611e6d01528181611eaf0152612ced0152600081816108d00152818161108f01528181611158015281816112d80152818161231901528181612a1d015281816130fd0152818161382c0152818161395a01528181613a5b0152613b30015260008181610987015281816110fb01528181611f7e015281816120040152818161220f015261233a01526000818161066b01526123d80152614a0b6000f3fe6080604052600436106102bb5760003560e01c80638b85902b1161016e578063d6ae3cd5116100cb578063f8f43ff61161007f578063fa315aa911610064578063fa315aa914610978578063fdffbb28146109ab578063fe2bbeb2146109cb57600080fd5b8063f8f43ff614610934578063fa24f7431461095457600080fd5b8063dabd396d116100b0578063dabd396d1461088e578063ec5e6308146108c1578063eff0f592146108f457600080fd5b8063d6ae3cd51461083b578063d8cc1a3c1461086e57600080fd5b8063c395e1ca11610122578063c6f0308c11610107578063c6f0308c14610763578063cf09e0d0146107ed578063d5d44d801461080e57600080fd5b8063c395e1ca14610730578063c55cd0c71461075057600080fd5b8063bbdc02db11610153578063bbdc02db1461068f578063bcef3b55146106d0578063bd8da9561461071057600080fd5b80638b85902b1461061c5780638d450a951461065c57600080fd5b806357da950e1161021c5780636361506d116101d057806370872aa5116101b557806370872aa5146105ea5780638129fc1c146105ff5780638980e0cc1461060757600080fd5b80636361506d146105775780636b6716c0146105b757600080fd5b8063609d333411610201578063609d33341461052f57806360e2746414610544578063632247ea1461056457600080fd5b806357da950e146104cc5780635c0cba33146104fc57600080fd5b806335fef567116102735780633a768463116102585780633a768463146104105780633fc8cef31461044357806354fd4d501461047657600080fd5b806335fef5671461039a57806337b1b229146103af57600080fd5b806325fc2ace116102a457806325fc2ace146103465780632810e1d6146103655780632ad69aeb1461037a57600080fd5b806319effeb4146102c0578063200d2ed21461030b575b600080fd5b3480156102cc57600080fd5b506000546102ed9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561031757600080fd5b5060005461033990700100000000000000000000000000000000900460ff1681565b60405161030291906142b6565b34801561035257600080fd5b506006545b604051908152602001610302565b34801561037157600080fd5b506103396109fb565b34801561038657600080fd5b506103576103953660046142f7565b610ca0565b6103ad6103a83660046142f7565b610cd1565b005b3480156103bb57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b34801561041c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561044f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561048257600080fd5b506104bf6040518060400160405280600681526020017f302e31372e30000000000000000000000000000000000000000000000000000081525081565b6040516103029190614384565b3480156104d857600080fd5b506006546007546104e7919082565b60408051928352602083019190915201610302565b34801561050857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561053b57600080fd5b506104bf610ce6565b34801561055057600080fd5b506103ad61055f3660046143bc565b610cf4565b6103ad6105723660046143f5565b610ea0565b34801561058357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610357565b3480156105c357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156105f657600080fd5b50600754610357565b6103ad6117a0565b34801561061357600080fd5b50600154610357565b34801561062857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610357565b34801561066857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561069b57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610302565b3480156106dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610357565b34801561071c57600080fd5b506102ed61072b36600461442a565b611cf8565b34801561073c57600080fd5b5061035761074b366004614443565b611ed8565b6103ad61075e3660046142f7565b6120bb565b34801561076f57600080fd5b5061078361077e36600461442a565b6120c7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610302565b3480156107f957600080fd5b506000546102ed9067ffffffffffffffff1681565b34801561081a57600080fd5b506103576108293660046143bc565b60026020526000908152604090205481565b34801561084757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561087a57600080fd5b506103ad6108893660046144be565b61215e565b34801561089a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156108cd57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561090057600080fd5b5061092461090f36600461442a565b60036020526000908152604090205460ff1681565b6040519015158152602001610302565b34801561094057600080fd5b506103ad61094f366004614548565b61278d565b34801561096057600080fd5b50610969612bed565b60405161030293929190614574565b34801561098457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b3480156109b757600080fd5b506103ad6109c636600461442a565b612c4d565b3480156109d757600080fd5b506109246109e636600461442a565b60056020526000908152604090205460ff1681565b600080600054700100000000000000000000000000000000900460ff166002811115610a2957610a29614287565b14610a60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff16610ac4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610af057610af0614599565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614610b2b576001610b2e565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610bdf57610bdf614287565b021790556002811115610bf457610bf4614287565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050505090565b60046020528160005260406000208181548110610cbc57600080fd5b90600052602060002001600091509150505481565b610cdd82826000610ea0565b5050565b905090565b6060610ce16054602061305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610d59576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b5050905080610e9b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610ecc57610ecc614287565b14610f03576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610f1857610f18614599565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610fdd90839086906130b116565b9050600061107d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508615806110b857506110b57f000000000000000000000000000000000000000000000000000000000000000060026145f7565b81145b80156110c2575084155b156110f9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611153576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117e7f000000000000000000000000000000000000000000000000000000000000000060016145f7565b810361119057611190868885886130b9565b3461119a83611ed8565b146111d1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111dc88611cf8565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611244576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112a4919061460f565b67ffffffffffffffff166112bf8267ffffffffffffffff1690565b67ffffffffffffffff1611156113a15760006112fc60017f0000000000000000000000000000000000000000000000000000000000000000614638565b83146113325767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016611367565b6113677f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261464f565b905061139d817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661460f565b9150505b6000604082901b42176000898152608086901b6fffffffffffffffffffffffffffffffff8c1617602052604081209192509060008181526003602052604090205490915060ff161561141f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808c63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018b8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008b8152602001908152602001600020600180805490506116b49190614638565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50506040513393508c92508d91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a450505050505050505050565b60005471010000000000000000000000000000000000900460ff16156117f2576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156118a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ca919061467f565b909250905081611906576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526006829055600781905536607a1461193957639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116119d3576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf985015551955182167001000000000000000000000000000000000295909116949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611d2657611d26614287565b14611d5d576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110611d7257611d72614599565b600091825260208220600590910201805490925063ffffffff90811614611de157815460018054909163ffffffff16908110611db057611db0614599565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611e1990700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611e2d9067ffffffffffffffff1642614638565b611e4c611e0c846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611e6091906145f7565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ead5780611ecf565b7f00000000000000000000000000000000000000000000000000000000000000005b95945050505050565b600080611f77836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611fd6576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a80630bebc2006000611ff183836146d2565b9050670de0b6b3a76400006000612028827f00000000000000000000000000000000000000000000000000000000000000006146e6565b90506000612046612041670de0b6b3a7640000866146e6565b613273565b9050600061205484846134ce565b90506000612062838361351d565b9050600061206f8261354b565b9050600061208e82612089670de0b6b3a76400008f6146e6565b613733565b9050600061209c8b8361351d565b90506120a8818d6146e6565b9f9e505050505050505050505050505050565b610cdd82826001610ea0565b600181815481106120d757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561218a5761218a614287565b146121c1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106121d6576121d6614599565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506122357f000000000000000000000000000000000000000000000000000000000000000060016145f7565b6122d1826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461230b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156124025761235e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614638565b6001901b61237d846fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff166123999190614723565b156123d6576123cd6123be60016fffffffffffffffffffffffffffffffff8716614737565b865463ffffffff16600061380c565b600301546123f8565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061242c565b600385015491506124296123be6fffffffffffffffffffffffffffffffff86166001614760565b90505b600882901b60088a8a604051612443929190614794565b6040518091039020901b14612484576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061248f8c6138f0565b9050600061249e836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290612518908f908f908f908f908a906004016147ed565b6020604051808303816000875af1158015612537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255b9190614827565b600485015491149150600090600290612606906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126a2896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126ac9190614840565b6126b69190614863565b60ff1615905081151581036126f7576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff161561274e576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156127b9576127b9614287565b146127f0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000806127ff8661391f565b9350935093509350600061281585858585613d28565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614885565b9050600189036129a35773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612907367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d9190614827565b50612be2565b600289036129cf5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612907565b600389036129fb5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612907565b60048903612b17576000612a416fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613de2565b600754612a4e91906145f7565b612a599060016145f7565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614827565b5050612be2565b60058903612bb0576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161295a565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612c46610ce6565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115612c7957612c79614287565b14612cb0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612cc557612cc5614599565b906000526020600020906005020190506000612ce083611cf8565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015612d49576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526005602052604090205460ff1615612d92576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600460205260409020805480158015612daf57508415155b15612e49578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612de25781612dfe565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050612e0a8187613e90565b505050600093845250506005602052506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60006fffffffffffffffffffffffffffffffff815b83811015612f91576000858281548110612e7a57612e7a614599565b6000918252602080832090910154808352600590915260409091205490915060ff16612ed2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612ee757612ee7614599565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612f40575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612f7e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b505080612f8a906148a2565b9050612e5e565b50612fd973ffffffffffffffffffffffffffffffffffffffff831615612fb75782612fd3565b600187015473ffffffffffffffffffffffffffffffffffffffff165b87613e90565b50845473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff90911617909355505050600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b151760011b90565b60006130d86fffffffffffffffffffffffffffffffff84166001614760565b905060006130e88286600161380c565b9050600086901a83806131d4575061312160027f0000000000000000000000000000000000000000000000000000000000000000614723565b60048301546002906131c5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6131cf9190614863565b60ff16145b1561322c5760ff8116600114806131ee575060ff81166002145b613227576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b61326a565b60ff81161561326a576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b50505050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136132d257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261350b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561353b5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361357957919050565b680755bf798b4a1bf1e582126135975763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613764670de0b6b3a76400008361374b86613273565b61375591906148da565b61375f9190614996565b61354b565b90505b92915050565b6000806137fa837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082613855576138506fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000613f89565b613870565b613870856fffffffffffffffffffffffffffffffff16614139565b90506001848154811061388557613885614599565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff8281169116146138e857815460018054909163ffffffff169081106138d3576138d3614599565b90600052602060002090600502019150613896565b509392505050565b60008060008060006139018661391f565b935093509350935061391584848484613d28565b9695505050505050565b600080600080600085905060006001828154811061393f5761393f614599565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090613a16906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613a50576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090613b17906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115613b8c57825463ffffffff16613b567f000000000000000000000000000000000000000000000000000000000000000060016145f7565b8303613b60578391505b60018181548110613b7357613b73614599565b9060005260206000209060050201935080945050613a54565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16613bf5613be0856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613cc4576000613c2d836fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff161115613c98576000613c6f613c6760016fffffffffffffffffffffffffffffffff8616614737565b89600161380c565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50613c9e9050565b6006549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750613d1a565b6000613ce6613c676fffffffffffffffffffffffffffffffff85166001614760565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615613d955760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611ecf565b8282604051602001613dc39291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080613e6f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216928392613ee09084906145f7565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015613f7557600080fd5b505af115801561326a573d6000803e3d6000fd5b600081614028846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614062576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61406b83614139565b90508161410a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613767576137646141208360016145f7565b6fffffffffffffffffffffffffffffffff8316906141de565b600081196001830116816141cd827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061426b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106142f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561430a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561433f57602081850181015186830182015201614323565b81811115614351576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006137646020830184614319565b73ffffffffffffffffffffffffffffffffffffffff811681146143b957600080fd5b50565b6000602082840312156143ce57600080fd5b81356143d981614397565b9392505050565b803580151581146143f057600080fd5b919050565b60008060006060848603121561440a57600080fd5b8335925060208401359150614421604085016143e0565b90509250925092565b60006020828403121561443c57600080fd5b5035919050565b60006020828403121561445557600080fd5b81356fffffffffffffffffffffffffffffffff811681146143d957600080fd5b60008083601f84011261448757600080fd5b50813567ffffffffffffffff81111561449f57600080fd5b6020830191508360208285010111156144b757600080fd5b9250929050565b600080600080600080608087890312156144d757600080fd5b863595506144e7602088016143e0565b9450604087013567ffffffffffffffff8082111561450457600080fd5b6145108a838b01614475565b9096509450606089013591508082111561452957600080fd5b5061453689828a01614475565b979a9699509497509295939492505050565b60008060006060848603121561455d57600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000611ecf6060830184614319565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561460a5761460a6145c8565b500190565b600067ffffffffffffffff83811690831681811015614630576146306145c8565b039392505050565b60008282101561464a5761464a6145c8565b500390565b600067ffffffffffffffff80831681851681830481118215151615614676576146766145c8565b02949350505050565b6000806040838503121561469257600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826146e1576146e16146a3565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471e5761471e6145c8565b500290565b600082614732576147326146a3565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015614630576146306145c8565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561478b5761478b6145c8565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006148016060830187896147a4565b82810360208401526148148186886147a4565b9150508260408301529695505050505050565b60006020828403121561483957600080fd5b5051919050565b600060ff821660ff84168082101561485a5761485a6145c8565b90039392505050565b600060ff831680614876576148766146a3565b8060ff84160691505092915050565b60006020828403121561489757600080fd5b81516143d981614397565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148d3576148d36145c8565b5060010190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561491b5761491b6145c8565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614956576149566145c8565b60008712925087820587128484161615614972576149726145c8565b87850587128184161615614988576149886145c8565b505050929093029392505050565b6000826149a5576149a56146a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156149f9576149f96145c8565b50059056fea164736f6c634300080f000a","sourceMap":"996:43827:164:-:0;;;4927:1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5391:35;5425:1;512:3:176;5391:35:164;:::i;:::-;5375:51;;:13;:51;5371:82;;;5435:18;;-1:-1:-1;;;5435:18:164;;;;;;;;;;;5371:82;5564:13;5549:11;:28;5545:60;;5586:19;;-1:-1:-1;;;5586:19:164;;;;;;;;;;;5545:60;5722:23;:17;-1:-1:-1;;;;;5722:21:164;;;;;;:23;;:::i;:::-;-1:-1:-1;;;;;5698:47:164;:21;:15;-1:-1:-1;;;;;5698:19:164;;;;;;:21;;:::i;:::-;-1:-1:-1;;;;;5698:47:164;;5694:83;;;5754:23;;-1:-1:-1;;;5754:23:164;;;;;;;;;;;5694:83;5788:21;;;;;;5819:37;;;;;-1:-1:-1;5866:30:164;;;;5906:25;;;;;-1:-1:-1;;;;;5941:33:164;;;;;5984:38;;;-1:-1:-1;;;;;6032:8:164;;;;;6050:12;;;;;6072:44;;;6126:24;;996:43827;;2881:145:177;3001:9;2881:145::o;14:198:357:-;115:13;;-1:-1:-1;;;;;157:30:357;;147:41;;137:69;;202:1;199;192:12;137:69;14:198;;;:::o;217:144::-;-1:-1:-1;;;;;305:31:357;;295:42;;285:70;;351:1;348;341:12;285:70;217:144;:::o;366:1384::-;714:6;722;730;738;746;754;762;770;778;786;839:3;827:9;818:7;814:23;810:33;807:53;;;856:1;853;846:12;807:53;888:9;882:16;938:10;931:5;927:22;920:5;917:33;907:61;;964:1;961;954:12;907:61;987:5;977:15;;;1032:2;1021:9;1017:18;1011:25;1001:35;;1076:2;1065:9;1061:18;1055:25;1045:35;;1120:2;1109:9;1105:18;1099:25;1089:35;;1143:72;1210:3;1199:9;1195:19;1143:72;:::i;:::-;1133:82;;1234:72;1301:3;1290:9;1286:19;1234:72;:::i;:::-;1224:82;;1351:3;1340:9;1336:19;1330:26;1365:46;1403:7;1365:46;:::i;:::-;1482:3;1467:19;;1461:26;1430:7;;-1:-1:-1;1496:46:357;1461:26;1496:46;:::i;:::-;1613:3;1598:19;;1592:26;1561:7;;-1:-1:-1;1627:46:357;1592:26;1627:46;:::i;:::-;1692:7;1682:17;;;1739:3;1728:9;1724:19;1718:26;1708:36;;366:1384;;;;;;;;;;;;;:::o;1755:292::-;1793:4;1830;1827:1;1823:12;1862:4;1859:1;1855:12;1887:3;1882;1879:12;1876:135;;;1933:10;1928:3;1924:20;1921:1;1914:31;1968:4;1965:1;1958:15;1996:4;1993:1;1986:15;1876:135;2028:13;;;1755:292;-1:-1:-1;;;1755:292:357:o;:::-;996:43827:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102bb5760003560e01c80638b85902b1161016e578063d6ae3cd5116100cb578063f8f43ff61161007f578063fa315aa911610064578063fa315aa914610978578063fdffbb28146109ab578063fe2bbeb2146109cb57600080fd5b8063f8f43ff614610934578063fa24f7431461095457600080fd5b8063dabd396d116100b0578063dabd396d1461088e578063ec5e6308146108c1578063eff0f592146108f457600080fd5b8063d6ae3cd51461083b578063d8cc1a3c1461086e57600080fd5b8063c395e1ca11610122578063c6f0308c11610107578063c6f0308c14610763578063cf09e0d0146107ed578063d5d44d801461080e57600080fd5b8063c395e1ca14610730578063c55cd0c71461075057600080fd5b8063bbdc02db11610153578063bbdc02db1461068f578063bcef3b55146106d0578063bd8da9561461071057600080fd5b80638b85902b1461061c5780638d450a951461065c57600080fd5b806357da950e1161021c5780636361506d116101d057806370872aa5116101b557806370872aa5146105ea5780638129fc1c146105ff5780638980e0cc1461060757600080fd5b80636361506d146105775780636b6716c0146105b757600080fd5b8063609d333411610201578063609d33341461052f57806360e2746414610544578063632247ea1461056457600080fd5b806357da950e146104cc5780635c0cba33146104fc57600080fd5b806335fef567116102735780633a768463116102585780633a768463146104105780633fc8cef31461044357806354fd4d501461047657600080fd5b806335fef5671461039a57806337b1b229146103af57600080fd5b806325fc2ace116102a457806325fc2ace146103465780632810e1d6146103655780632ad69aeb1461037a57600080fd5b806319effeb4146102c0578063200d2ed21461030b575b600080fd5b3480156102cc57600080fd5b506000546102ed9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561031757600080fd5b5060005461033990700100000000000000000000000000000000900460ff1681565b60405161030291906142b6565b34801561035257600080fd5b506006545b604051908152602001610302565b34801561037157600080fd5b506103396109fb565b34801561038657600080fd5b506103576103953660046142f7565b610ca0565b6103ad6103a83660046142f7565b610cd1565b005b3480156103bb57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b34801561041c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561044f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561048257600080fd5b506104bf6040518060400160405280600681526020017f302e31372e30000000000000000000000000000000000000000000000000000081525081565b6040516103029190614384565b3480156104d857600080fd5b506006546007546104e7919082565b60408051928352602083019190915201610302565b34801561050857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561053b57600080fd5b506104bf610ce6565b34801561055057600080fd5b506103ad61055f3660046143bc565b610cf4565b6103ad6105723660046143f5565b610ea0565b34801561058357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610357565b3480156105c357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156105f657600080fd5b50600754610357565b6103ad6117a0565b34801561061357600080fd5b50600154610357565b34801561062857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610357565b34801561066857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561069b57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610302565b3480156106dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610357565b34801561071c57600080fd5b506102ed61072b36600461442a565b611cf8565b34801561073c57600080fd5b5061035761074b366004614443565b611ed8565b6103ad61075e3660046142f7565b6120bb565b34801561076f57600080fd5b5061078361077e36600461442a565b6120c7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610302565b3480156107f957600080fd5b506000546102ed9067ffffffffffffffff1681565b34801561081a57600080fd5b506103576108293660046143bc565b60026020526000908152604090205481565b34801561084757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561087a57600080fd5b506103ad6108893660046144be565b61215e565b34801561089a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156108cd57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561090057600080fd5b5061092461090f36600461442a565b60036020526000908152604090205460ff1681565b6040519015158152602001610302565b34801561094057600080fd5b506103ad61094f366004614548565b61278d565b34801561096057600080fd5b50610969612bed565b60405161030293929190614574565b34801561098457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b3480156109b757600080fd5b506103ad6109c636600461442a565b612c4d565b3480156109d757600080fd5b506109246109e636600461442a565b60056020526000908152604090205460ff1681565b600080600054700100000000000000000000000000000000900460ff166002811115610a2957610a29614287565b14610a60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff16610ac4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610af057610af0614599565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614610b2b576001610b2e565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610bdf57610bdf614287565b021790556002811115610bf457610bf4614287565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050505090565b60046020528160005260406000208181548110610cbc57600080fd5b90600052602060002001600091509150505481565b610cdd82826000610ea0565b5050565b905090565b6060610ce16054602061305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610d59576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b5050905080610e9b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610ecc57610ecc614287565b14610f03576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610f1857610f18614599565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610fdd90839086906130b116565b9050600061107d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508615806110b857506110b57f000000000000000000000000000000000000000000000000000000000000000060026145f7565b81145b80156110c2575084155b156110f9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611153576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117e7f000000000000000000000000000000000000000000000000000000000000000060016145f7565b810361119057611190868885886130b9565b3461119a83611ed8565b146111d1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111dc88611cf8565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611244576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112a4919061460f565b67ffffffffffffffff166112bf8267ffffffffffffffff1690565b67ffffffffffffffff1611156113a15760006112fc60017f0000000000000000000000000000000000000000000000000000000000000000614638565b83146113325767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016611367565b6113677f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261464f565b905061139d817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661460f565b9150505b6000604082901b42176000898152608086901b6fffffffffffffffffffffffffffffffff8c1617602052604081209192509060008181526003602052604090205490915060ff161561141f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808c63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018b8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008b8152602001908152602001600020600180805490506116b49190614638565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50506040513393508c92508d91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a450505050505050505050565b60005471010000000000000000000000000000000000900460ff16156117f2576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156118a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ca919061467f565b909250905081611906576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526006829055600781905536607a1461193957639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116119d3576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf985015551955182167001000000000000000000000000000000000295909116949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611d2657611d26614287565b14611d5d576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110611d7257611d72614599565b600091825260208220600590910201805490925063ffffffff90811614611de157815460018054909163ffffffff16908110611db057611db0614599565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611e1990700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611e2d9067ffffffffffffffff1642614638565b611e4c611e0c846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611e6091906145f7565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ead5780611ecf565b7f00000000000000000000000000000000000000000000000000000000000000005b95945050505050565b600080611f77836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611fd6576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a80630bebc2006000611ff183836146d2565b9050670de0b6b3a76400006000612028827f00000000000000000000000000000000000000000000000000000000000000006146e6565b90506000612046612041670de0b6b3a7640000866146e6565b613273565b9050600061205484846134ce565b90506000612062838361351d565b9050600061206f8261354b565b9050600061208e82612089670de0b6b3a76400008f6146e6565b613733565b9050600061209c8b8361351d565b90506120a8818d6146e6565b9f9e505050505050505050505050505050565b610cdd82826001610ea0565b600181815481106120d757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561218a5761218a614287565b146121c1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106121d6576121d6614599565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506122357f000000000000000000000000000000000000000000000000000000000000000060016145f7565b6122d1826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461230b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156124025761235e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614638565b6001901b61237d846fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff166123999190614723565b156123d6576123cd6123be60016fffffffffffffffffffffffffffffffff8716614737565b865463ffffffff16600061380c565b600301546123f8565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061242c565b600385015491506124296123be6fffffffffffffffffffffffffffffffff86166001614760565b90505b600882901b60088a8a604051612443929190614794565b6040518091039020901b14612484576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061248f8c6138f0565b9050600061249e836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290612518908f908f908f908f908a906004016147ed565b6020604051808303816000875af1158015612537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255b9190614827565b600485015491149150600090600290612606906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126a2896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126ac9190614840565b6126b69190614863565b60ff1615905081151581036126f7576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff161561274e576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156127b9576127b9614287565b146127f0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000806127ff8661391f565b9350935093509350600061281585858585613d28565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614885565b9050600189036129a35773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612907367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d9190614827565b50612be2565b600289036129cf5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612907565b600389036129fb5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612907565b60048903612b17576000612a416fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613de2565b600754612a4e91906145f7565b612a599060016145f7565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614827565b5050612be2565b60058903612bb0576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161295a565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612c46610ce6565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115612c7957612c79614287565b14612cb0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612cc557612cc5614599565b906000526020600020906005020190506000612ce083611cf8565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015612d49576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526005602052604090205460ff1615612d92576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600460205260409020805480158015612daf57508415155b15612e49578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612de25781612dfe565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050612e0a8187613e90565b505050600093845250506005602052506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60006fffffffffffffffffffffffffffffffff815b83811015612f91576000858281548110612e7a57612e7a614599565b6000918252602080832090910154808352600590915260409091205490915060ff16612ed2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612ee757612ee7614599565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612f40575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612f7e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b505080612f8a906148a2565b9050612e5e565b50612fd973ffffffffffffffffffffffffffffffffffffffff831615612fb75782612fd3565b600187015473ffffffffffffffffffffffffffffffffffffffff165b87613e90565b50845473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff90911617909355505050600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b151760011b90565b60006130d86fffffffffffffffffffffffffffffffff84166001614760565b905060006130e88286600161380c565b9050600086901a83806131d4575061312160027f0000000000000000000000000000000000000000000000000000000000000000614723565b60048301546002906131c5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6131cf9190614863565b60ff16145b1561322c5760ff8116600114806131ee575060ff81166002145b613227576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b61326a565b60ff81161561326a576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b50505050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136132d257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261350b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561353b5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361357957919050565b680755bf798b4a1bf1e582126135975763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613764670de0b6b3a76400008361374b86613273565b61375591906148da565b61375f9190614996565b61354b565b90505b92915050565b6000806137fa837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082613855576138506fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000613f89565b613870565b613870856fffffffffffffffffffffffffffffffff16614139565b90506001848154811061388557613885614599565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff8281169116146138e857815460018054909163ffffffff169081106138d3576138d3614599565b90600052602060002090600502019150613896565b509392505050565b60008060008060006139018661391f565b935093509350935061391584848484613d28565b9695505050505050565b600080600080600085905060006001828154811061393f5761393f614599565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090613a16906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613a50576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090613b17906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115613b8c57825463ffffffff16613b567f000000000000000000000000000000000000000000000000000000000000000060016145f7565b8303613b60578391505b60018181548110613b7357613b73614599565b9060005260206000209060050201935080945050613a54565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16613bf5613be0856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613cc4576000613c2d836fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff161115613c98576000613c6f613c6760016fffffffffffffffffffffffffffffffff8616614737565b89600161380c565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50613c9e9050565b6006549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750613d1a565b6000613ce6613c676fffffffffffffffffffffffffffffffff85166001614760565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615613d955760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611ecf565b8282604051602001613dc39291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080613e6f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216928392613ee09084906145f7565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015613f7557600080fd5b505af115801561326a573d6000803e3d6000fd5b600081614028846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614062576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61406b83614139565b90508161410a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613767576137646141208360016145f7565b6fffffffffffffffffffffffffffffffff8316906141de565b600081196001830116816141cd827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061426b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106142f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561430a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561433f57602081850181015186830182015201614323565b81811115614351576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006137646020830184614319565b73ffffffffffffffffffffffffffffffffffffffff811681146143b957600080fd5b50565b6000602082840312156143ce57600080fd5b81356143d981614397565b9392505050565b803580151581146143f057600080fd5b919050565b60008060006060848603121561440a57600080fd5b8335925060208401359150614421604085016143e0565b90509250925092565b60006020828403121561443c57600080fd5b5035919050565b60006020828403121561445557600080fd5b81356fffffffffffffffffffffffffffffffff811681146143d957600080fd5b60008083601f84011261448757600080fd5b50813567ffffffffffffffff81111561449f57600080fd5b6020830191508360208285010111156144b757600080fd5b9250929050565b600080600080600080608087890312156144d757600080fd5b863595506144e7602088016143e0565b9450604087013567ffffffffffffffff8082111561450457600080fd5b6145108a838b01614475565b9096509450606089013591508082111561452957600080fd5b5061453689828a01614475565b979a9699509497509295939492505050565b60008060006060848603121561455d57600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000611ecf6060830184614319565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561460a5761460a6145c8565b500190565b600067ffffffffffffffff83811690831681811015614630576146306145c8565b039392505050565b60008282101561464a5761464a6145c8565b500390565b600067ffffffffffffffff80831681851681830481118215151615614676576146766145c8565b02949350505050565b6000806040838503121561469257600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826146e1576146e16146a3565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471e5761471e6145c8565b500290565b600082614732576147326146a3565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015614630576146306145c8565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561478b5761478b6145c8565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006148016060830187896147a4565b82810360208401526148148186886147a4565b9150508260408301529695505050505050565b60006020828403121561483957600080fd5b5051919050565b600060ff821660ff84168082101561485a5761485a6145c8565b90039392505050565b600060ff831680614876576148766146a3565b8060ff84160691505092915050565b60006020828403121561489757600080fd5b81516143d981614397565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148d3576148d36145c8565b5060010190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561491b5761491b6145c8565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614956576149566145c8565b60008712925087820587128484161615614972576149726145c8565b87850587128184161615614988576149886145c8565b505050929093029392505050565b6000826149a5576149a56146a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156149f9576149f96145c8565b50059056fea164736f6c634300080f000a","sourceMap":"996:43827:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:27;;;;;;;;;;-1:-1:-1;3113:27:164;;;;;;;;;;;;;;221:18:357;209:31;;;191:50;;179:2;164:18;3113:27:164;;;;;;;;3180:24;;;;;;;;;;-1:-1:-1;3180:24:164;;;;;;;;;;;;;;;;;;:::i;22098:135::-;;;;;;;;;;-1:-1:-1;22203:18:164;:23;22098:135;;;1021:25:357;;;1009:2;994:18;22098:135:164;848:204:357;22480:905:164;;;;;;;;;;;;;:::i;3777:45::-;;;;;;;;;;-1:-1:-1;3777:45:164;;;;;:::i;:::-;;:::i;19512:119::-;;;;;;:::i;:::-;;:::i;:::-;;27482:110;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;1989:2;1985:45;27482:110:164;;;1949:42:357;1937:55;;;1919:74;;1907:2;1892:18;27482:110:164;1773:226:357;34509:79:164;;;;;;;;;;-1:-1:-1;34579:2:164;34509:79;;34653:88;;;;;;;;;;-1:-1:-1;34730:4:164;34653:88;;2918:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4061:36::-;;;;;;;;;;-1:-1:-1;4061:36:164;;;;;;;;;;;;;3473:25:357;;;3529:2;3514:18;;3507:34;;;;3446:18;4061:36:164;3272:275:357;34807:136:164;;;;;;;;;;-1:-1:-1;34915:21:164;34807:136;;27942:231;;;;;;;;;;;;;:::i;31160:671::-;;;;;;;;;;-1:-1:-1;31160:671:164;;;;;:::i;:::-;;:::i;14106:5200::-;;;;;;:::i;:::-;;:::i;27792:111::-;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27890:4:164;3514:22:97;3501:36;27792:111:164;27482:110;34331:125;;;;;;;;;;-1:-1:-1;34434:15:164;34331:125;;21898:156;;;;;;;;;;-1:-1:-1;22015:32:164;;21898:156;;6198:2903;;;:::i;33244:101::-;;;;;;;;;;-1:-1:-1;33322:9:164;:16;33244:101;;21730:124;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;21842:4:164;3514:22:97;3501:36;21730:124:164;27482:110;33631:130;;;;;;;;;;-1:-1:-1;33737:17:164;33631:130;;27335:108;;;;;;;;;;-1:-1:-1;27335:108:164;;5615:10:357;27427:9:164;5603:23:357;5585:42;;5573:2;5558:18;27335:108:164;5409:224:357;27631:122:164;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;27631:122:164;27482:110;32166:1011;;;;;;;;;;-1:-1:-1;32166:1011:164;;;;;:::i;:::-;;:::i;28849:2171::-;;;;;;;;;;-1:-1:-1;28849:2171:164;;;;;:::i;:::-;;:::i;19350:118::-;;;;;;:::i;:::-;;:::i;3405:28::-;;;;;;;;;;-1:-1:-1;3405:28:164;;;;;:::i;:::-;;:::i;:::-;;;;6590:10:357;6578:23;;;6560:42;;6621;6699:15;;;6694:2;6679:18;;6672:43;6751:15;;;;6731:18;;;6724:43;;;;6786:34;6856:15;;;6851:2;6836:18;;6829:43;6903:3;6888:19;;6881:35;6953:15;;;6947:3;6932:19;;6925:44;7006:15;7000:3;6985:19;;6978:44;6547:3;6532:19;3405:28:164;6160:868:357;3017:26:164;;;;;;;;;;-1:-1:-1;3017:26:164;;;;;;;;3500:41;;;;;;;;;;-1:-1:-1;3500:41:164;;;;;:::i;:::-;;;;;;;;;;;;;;35032:105;;;;;;;;;;-1:-1:-1;35119:11:164;35032:105;;9353:4442;;;;;;;;;;-1:-1:-1;9353:4442:164;;;;;:::i;:::-;;:::i;34137:134::-;;;;;;;;;;-1:-1:-1;34246:18:164;34137:134;;33975:108;;;;;;;;;;-1:-1:-1;34065:11:164;33975:108;;3629:40;;;;;;;;;;-1:-1:-1;3629:40:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8626:14:357;;8619:22;8601:41;;8589:2;8574:18;3629:40:164;8461:187:357;19675:2011:164;;;;;;;;;;-1:-1:-1;19675:2011:164;;;;;:::i;:::-;;:::i;28212:213::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;33811:117::-;;;;;;;;;;-1:-1:-1;33907:14:164;33811:117;;23429:3867;;;;;;;;;;-1:-1:-1;23429:3867:164;;;;;:::i;:::-;;:::i;3912:48::-;;;;;;;;;;-1:-1:-1;3912:48:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;22480:905;22517:18;;22639:6;;;;;;;:32;;;;;;;;:::i;:::-;;22635:64;;22680:19;;;;;;;;;;;;;;22635:64;22813:19;;;:16;:19;;;;;;22808:55;;22841:22;;;;;;;;;;;;;;22808:55;22989:1;22953:38;;:9;22963:1;22953:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:24;;;;;;:38;:94;;23021:26;22953:94;;;22994:24;22953:94;23057:10;:52;;;23092:15;23057:52;;;;;;;;;;22943:104;;-1:-1:-1;22943:104:164;;23239:16;;;;;;;;22943:104;23239:16;;;;;;;;:::i;:::-;;;;;23230:26;;;;;;;;:::i;:::-;;;;;;;;23334:21;:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22480:905;:::o;3777:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19512:119::-;19591:33;19596:12;19610:6;19618:5;19591:4;:33::i;:::-;19512:119;;:::o;27565:20::-;27554:31;;27482:110;:::o;27942:231::-;27984:23;28142:24;28155:4;28161;28142:12;:24::i;31160:671::-;31333:18;;;31307:23;31333:18;;;:6;:18;;;;;;;31361:22;;;;31333:18;31457:20;;;31453:75;;31500:17;;;;;;;;;;;;;;31453:75;31605:42;;;;;:13;9795:55:357;;;31605:42:164;;;9777:74:357;9867:18;;;9860:34;;;31605:4:164;:13;;;;9750:18:357;;31605:42:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31708:12;31725:10;:15;;31749;31725:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31707:66;;;31788:7;31783:41;;31804:20;;;;;;;;;;;;;;31783:41;31210:621;;31160:671;:::o;14106:5200::-;14307:22;14297:6;;;;;;;:32;;;;;;;;:::i;:::-;;14293:64;;14338:19;;;;;;;;;;;;;;14293:64;14448:23;14474:9;14484:15;14474:26;;;;;;;;:::i;:::-;;;;;;;;;14448:52;;;;;;;;14474:26;;;;;;;14448:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14448:52:164;;14474:26;14829:25;;14448:52;;14844:9;;14829:14;:25;:::i;:::-;14805:49;;14864:25;14892:20;:12;:18;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;14892:20:164;14864:48;;;-1:-1:-1;15259:20:164;;;:60;;-1:-1:-1;15304:15:164;:11;15318:1;15304:15;:::i;:::-;15283:17;:36;15259:60;15258:76;;;;;15325:9;15324:10;15258:76;15254:137;;;15357:23;;;;;;;;;;;;;;15254:137;15752:14;15732:17;:34;15728:66;;;15775:19;;;;;;;;;;;;;;15728:66;16022:15;:11;16036:1;16022:15;:::i;:::-;16001:17;:36;15997:138;;16053:71;16078:6;16086:15;16103:9;16114;16053:24;:71::i;:::-;16258:9;16225:29;16241:12;16225:15;:29::i;:::-;:42;16221:76;;16276:21;;;;;;;;;;;;;;16221:76;16530:21;16554:38;16576:15;16554:21;:38::i;:::-;16530:62;-1:-1:-1;16764:22:164;:18;:22;;16742:16;;;:46;16738:78;;16797:19;;;;;;;;;;;;;;16738:78;17525:19;:15;:19;17498:22;:18;:22;:48;;;;:::i;:::-;17477:69;;:18;:12;:16;;3001:9:177;2881:145;17477:18:164;:69;;;17473:424;;;17671:22;17733:15;17747:1;17733:11;:15;:::i;:::-;17712:17;:36;:88;;17779:19;:15;:19;17712:88;;;17751:25;:15;:19;;17775:1;17751:25;:::i;:::-;17671:129;-1:-1:-1;17843:42:164;17671:129;17843:18;:22;;:42;:::i;:::-;17814:72;;17548:349;17473:424;17998:15;668:4:177;664:20;;;18066:15:164;661:36:177;18368:19:164;758:20:175;;;811:3;807:19;;;832:34;828:56;;804:81;798:4;791:95;929:4;913:21;;17998:86:164;;-1:-1:-1;18368:19:164;18454:17;;;;:6;:17;;;;;;18368:72;;-1:-1:-1;18454:17:164;;18450:50;;;18480:20;;;;;;;;;;;;;;18450:50;18530:4;18510:6;:17;18517:9;18510:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18578:9;18606:366;;;;;;;;18654:15;18606:366;;;;;;18770:1;18606:366;;;;;;18800:10;18606:366;;;;;;18842:9;18606:366;;;;;;18877:6;18606:366;;;;18911:12;18606:366;;;;;;18948:9;18606:366;;;;;18578:404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19051:8;:25;19060:15;19051:25;;;;;;;;;;;19101:1;19082:9;:16;;;;:20;;;;:::i;:::-;19051:52;;;;;;;-1:-1:-1;19051:52:164;;;;;;;;19143:34;;;;;;;;:12;:4;:12;;;;19164:9;;19143:34;;;;;-1:-1:-1;19143:34:164;;;;;19164:9;19143:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19258:41:164;;19288:10;;-1:-1:-1;19280:6:164;;-1:-1:-1;19263:15:164;;-1:-1:-1;19258:41:164;;;;;14198:5108;;;;;;;14106:5200;;;:::o;6198:2903::-;6888:11;;;;;;;6884:44;;;6908:20;;;;;;;;;;;;;;6884:44;7018:40;;;;;;7048:9;5603:23:357;7018:40:164;;;5585:42:357;6980:9:164;;;;7018:29;:21;:29;;;;5558:18:357;;7018:40:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6979:79;;-1:-1:-1;6979:79:164;-1:-1:-1;6979:79:164;7155:57;;7192:20;;;;;;;;;;;;;;7155:57;7285:58;;;;;;;;;;;;;;;;;7264:18;:79;;;;;;;7960:14;7976:4;7957:24;7947:195;;8082:10;8076:4;8069:24;8123:4;8117;8110:18;7947:195;8339:15;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;21842:4:164;3514:22:97;3501:36;8320:34:164;8316:79;;8363:32;;;;;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;8363:32:164;;;1021:25:357;994:18;;8363:32:164;;;;;;;;8316:79;8464:370;;;;;;;;8505:16;8464:370;;;-1:-1:-1;8464:370:164;;;;;;14561:22:97;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;;1989:2;1985:45;;;8464:370:164;;;;;;8635:9;8464:370;;;;;;;;;;27740:4;3514:22:97;;;3501:36;8464:370:164;;;;;;8436:9;8464:370;;;;;;8801:15;8464:370;;;;;;;;8436:408;;;;;;;;;;;;;;;;;;;;;;;8464:370;8436:408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8895:18;;;;;;;;8953:34;;;;;;;:4;:12;;;;;;8635:9;8436:408;8953:34;;;;-1:-1:-1;8953:34:164;;;;;8635:9;8953:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9043:9:164;:51;;;;9077:15;9043:51;;;;;-1:-1:-1;;;;;6198:2903:164:o;32166:1011::-;32239:18;;32381:6;;;;;;;:32;;;;;;;;:::i;:::-;;32377:89;;32436:19;;;;;;;;;;;;;;32377:89;32517:34;32554:9;32564:11;32554:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;32689:28;;32554:22;;-1:-1:-1;32721:16:164;32689:28;;;:48;32685:138;;32777:28;;32767:9;:39;;:9;;32777:28;;;32767:39;;;;;;:::i;:::-;;;;;;;;;;;:45;;;;;;;;;;;;32753:59;;32685:138;33006:22;;;;32910:24;;33006:40;;:22;;;1624:28:177;;33006:34:164;:38;;3001:9:177;2881:145;33006:40:164;32988:58;;;;:15;:58;:::i;:::-;32956:28;:22;:11;:20;;1135:4:177;1131:17;;913:251;32956:28:164;:91;;;;;;:::i;:::-;32910:138;-1:-1:-1;33090:22:164;:18;:22;33070:44;;:17;:44;;;:100;;33152:17;33070:100;;;33117:18;33070:100;33058:112;32166:1011;-1:-1:-1;;;;;32166:1011:164:o;28849:2171::-;28915:21;28948:13;28972:17;:9;:15;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;28972:17:164;28964:26;;28948:42;;29012:14;29004:5;:22;29000:54;;;29035:19;;;;;;;;;;;;;;29000:54;29145:8;29188:7;29230:11;29120:22;29997:31;29188:7;29230:11;29997:31;:::i;:::-;29985:43;-1:-1:-1;2458:4:98;30038:9:164;30093:38;2458:4:98;30093:14:164;:38;:::i;:::-;30081:50;-1:-1:-1;30228:11:164;30250:58;30281:25;2458:4:98;30281:1:164;:25;:::i;:::-;30250:23;:58::i;:::-;30228:81;;30386:14;30403:30;30428:1;30431;30403:24;:30::i;:::-;30386:47;;30567:17;30587:37;30612:3;30617:6;30587:24;:37::i;:::-;30567:57;;30634:11;30648:43;30680:9;30648:24;:43::i;:::-;30634:57;-1:-1:-1;30746:13:164;30762:69;30634:57;30800:29;2458:4:98;30800:5:164;:29;:::i;:::-;30762:24;:69::i;:::-;30746:85;;30841:19;30863:57;30888:14;30912:6;30863:24;:57::i;:::-;30841:79;-1:-1:-1;30985:28:164;30841:79;30985:14;:28;:::i;:::-;30969:44;28849:2171;-1:-1:-1;;;;;;;;;;;;;;;28849:2171:164:o;19350:118::-;19429:32;19434:12;19448:6;19456:4;19429;:32::i;3405:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3405:28:164;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9353:4442::-;9636:22;9626:6;;;;;;;:32;;;;;;;;:::i;:::-;;9622:64;;9667:19;;;;;;;;;;;;;;9622:64;9777:24;9804:9;9814:11;9804:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9910:15;;;;9804:22;;-1:-1:-1;9910:15:164;;;8619:17:176;;8616:32;;8613:1;8609:40;9982:44:164;-1:-1:-1;10161:18:164;:14;10178:1;10161:18;:::i;:::-;10142:15;:7;:13;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;10142:15:164;:37;;;10138:65;;10188:15;;;;;;;;;;;;;;10138:65;10279:19;10308:27;10349:9;10345:1343;;;11080:28;11097:11;11080:14;:28;:::i;:::-;11074:1;:35;;11048:22;:7;:20;;;:22::i;:::-;:62;;;;;;:::i;:::-;11047:69;:211;;11171:81;11204:19;11222:1;11204:13;;;:19;:::i;:::-;11226:18;;;;;11171;:81::i;:::-;:87;;;11047:211;;;11135:17;11047:211;11031:227;;11351:6;11339:18;;10345:1343;;;11558:12;;;;;-1:-1:-1;11596:81:164;11629:19;:13;;;11647:1;11629:19;:::i;11596:81::-;11584:93;;10345:1343;12084:1;12061:13;:24;;12056:1;12041:10;;12031:21;;;;;;;:::i;:::-;;;;;;;;:26;;:54;12027:84;;12094:17;;;;;;;;;;;;;;12027:84;12182:9;12194:30;12212:11;12194:17;:30::i;:::-;12182:42;;13197:14;13257:21;:9;:15;;;3001:9:177;2881:145;13257:21:164;13214:39;;;;;:2;:7;;;;;:39;;13222:10;;;;13234:6;;;;13242:4;;13214:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13332:18;;;;13214:64;;;-1:-1:-1;13288:20:164;;13362:1;;13332:26;;:18;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;13332:26:164;13312:17;:9;:15;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;13312:17:164;:46;;;;:::i;:::-;13311:52;;;;:::i;:::-;:57;;;;-1:-1:-1;13382:28:164;;;;;13378:52;;13419:11;;;;;;;;;;;;;;13378:52;13524:18;;;;;:32;:18;:32;13520:60;;13565:15;;;;;;;;;;;;;;13520:60;-1:-1:-1;;13757:31:164;;;;13778:10;13757:31;;;;;;-1:-1:-1;;;;;;;;;;;9353:4442:164:o;19675:2011::-;19878:22;19868:6;;;;;;;:32;;;;;;;;:::i;:::-;;19864:64;;19909:19;;;;;;;;;;;;;;19864:64;19940:14;19956:20;19978:14;19994:20;20030:45;20062:12;20030:31;:45::i;:::-;19939:136;;;;;;;;20085:9;20097:66;20118:8;20128:11;20141:8;20151:11;20097:20;:66::i;:::-;20085:78;;20174:22;20199:2;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20174:36;;5253:4:194;20224:6:164;:39;20220:1460;;20316:20;;;;20337:6;20345:4;20357:14;14565::97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27890:4:164;3514:22:97;3501:36;3001:9:177;2881:145;20357:8:164;3001:9:177;2881:145;20357:14:164;20316:73;;;;;;;;;;;;;14739:25:357;;;;14780:18;;;14773:34;;;;14823:18;;;14816:34;20373:2:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;14711:19;;20316:73:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20220:1460;;;5374:4:194;20410:6:164;:47;20406:1274;;20530:20;;;;20551:6;20559:4;20571:8;:14;2881:145:177;20406:1274:164;5495:4:194;20624:6:164;:47;20620:1060;;20743:20;;;;20764:6;20772:4;20784:8;:14;2881:145:177;20620:1060:164;5624:4:194;20837:6:164;:51;20833:847;;21168:16;21222:35;:22;;;21245:11;21222:22;:35::i;:::-;21187:32;;:70;;;;:::i;:::-;:74;;21260:1;21187:74;:::i;:::-;21168:93;-1:-1:-1;21276:20:164;;;;21297:6;21305:4;21276:83;;;;;;;;;;;;;14739:25:357;;;;14780:18;;;14773:34;21337:4:164;21325:16;;;14823:18:357;;;14816:34;21344:1:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;14711:19;;21276:83:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20890:480;20833:847;;;5721:4:194;21380:6:164;:35;21376:304;;21526:86;;;;;;;;14739:25:357;;;14780:18;;;14773:34;;;21575:11:164;21590:4;21575:19;14823:18:357;;;14816:34;21597:1:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;21526:20:164;;;;;;14711:19:357;;21526:86:164;14471:472:357;21376:304:164;21650:19;;;;;;;;;;;;;;21376:304;19765:1921;;;;;;19675:2011;;;:::o;28212:213::-;27427:9;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;28293:23:164;28407:11;:9;:11::i;:::-;28394:24;;28212:213;;;:::o;23429:3867::-;23593:22;23583:6;;;;;;;:32;;;;;;;;:::i;:::-;;23579:64;;23624:19;;;;;;;;;;;;;;23579:64;23654:34;23691:9;23701:11;23691:22;;;;;;;;:::i;:::-;;;;;;;;;;;23654:59;;23723:31;23757:34;23779:11;23757:21;:34::i;:::-;23723:68;-1:-1:-1;24102:22:164;:18;:22;;24071:26;;;:55;24067:85;;;24135:17;;;;;;;;;;;;;;24067:85;24221:29;;;;:16;:29;;;;;;;;24217:64;;;24259:22;;;;;;;;;;;;;;24217:64;24292:34;24329:21;;;:8;:21;;;;;24390:23;;24576:24;;:44;;;;-1:-1:-1;24604:16:164;;;24576:44;24572:805;;;25109:28;;;;;;;25087:19;25171:25;;:67;;25227:11;25171:67;;;25199:25;;;;;;25171:67;25151:87;;25252:44;25268:9;25279:16;25252:15;:44::i;:::-;-1:-1:-1;;;25310:29:164;;;;-1:-1:-1;;25310:16:164;:29;;-1:-1:-1;25310:29:164;;;:36;;;;25342:4;25310:36;;;23429:3867::o;24572:805::-;25445:17;25526;25445;25554:1129;25578:19;25574:1;:23;25554:1129;;;25618:22;25643:16;25660:1;25643:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;25764:32;;;:16;:32;;;;;;;;25643:19;;-1:-1:-1;25764:32:164;;25759:68;;25805:22;;;;;;;;;;;;;;25759:68;25842:23;25868:9;25878:14;25868:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;26483:17;;25868:25;;-1:-1:-1;26483:17:164;;;:31;:17;:31;:79;;;;-1:-1:-1;26542:14:164;;;;;;;;26518:19;;;:44;26483:79;26479:194;;;26594:14;;;;26644;;;;26594;;;;;-1:-1:-1;26644:14:164;;;-1:-1:-1;26479:194:164;25604:1079;;25599:3;;;;:::i;:::-;;;25554:1129;;;-1:-1:-1;26891:98:164;26907:23;;;;:63;;26961:9;26907:63;;;26933:25;;;;;;26907:63;26972:16;26891:15;:98::i;:::-;-1:-1:-1;27161:40:164;;;;;;;;;;;;;;;;-1:-1:-1;;;27161:28:164;27253:29;;;:16;:29;;;;;:36;;;;-1:-1:-1;27253:36:164;;;23429:3867::o;1122:588:97:-;1389:4;1383:11;1407:19;;;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1407:19;1489:22;;;1482:4;1473:14;;1460:60;1562:6;1555:4;1550:3;1546:14;1542:27;1592:1;1589;1582:12;1664:4;1661:1;1657:12;1651:4;1644:26;;1362:342;1122:588;;;;:::o;8478:187:176:-;8619:17;8616:32;8613:1;8609:40;;8478:187::o;36108:1977:164:-;36860:24;36901:20;:14;;;36920:1;36901:20;:::i;:::-;36860:62;;36932:26;36961:80;36988:15;37013:10;37034:4;36961:18;:80::i;:::-;36932:109;-1:-1:-1;37051:14:164;37074:19;;;37109:9;;:61;;-1:-1:-1;37155:15:164;37169:1;37155:11;:15;:::i;:::-;37122:17;;;;37150:1;;37122:25;;:17;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;37122:25:164;:29;;;;:::i;:::-;:48;;;37109:61;37105:974;;;37648:36;;;4806:1:194;37648:36:164;;:74;;-1:-1:-1;37688:34:164;;;4900:1:194;37688:34:164;37648:74;37642:154;;37750:31;;;;;;;;1021:25:357;;;994:18;;37750:31:164;848:204:357;37642:154:164;37105:974;;;37816:34;;;;37812:267;;38037:31;;;;;;;;1021:25:357;;;994:18;;38037:31:164;848:204:357;37812:267:164;36289:1796;;;36108:1977;;;;:::o;11843:3927:98:-;12373:34;12370:41;-1:-1:-1;12367:1:98;12363:49;12466:9;;;12446:18;12443:33;12440:1;12436:41;12430:48;12524:9;;;12512:10;12509:25;12506:1;12502:33;12496:40;12578:9;;;12570:6;12567:21;12564:1;12560:29;12554:36;12630:9;;;12624:4;12621:19;12618:1;12614:27;12608:34;11891:8;12739:9;;12729:135;;12781:10;12775:4;12768:24;12845:4;12839;12832:18;12729:135;13016:66;12962:34;12951:9;;;12947:50;12941:4;12937:61;12932:151;12925:159;13210:9;;;13205:3;13201:19;;;14173:31;14169:39;;14272:9;;13660:2;14264:18;;;14230:32;14226:57;14348:9;;14340:18;;14305:33;14301:58;14424:9;;14416:18;;14381:33;14377:58;14500:9;;14492:18;;14457:33;14453:58;14575:9;;14567:18;;14533:32;14529:57;14648:9;;14640:18;;14608:30;14604:55;13672:31;13668:59;;13664:67;;13656:76;;13606:32;13602:131;13598:139;;13590:148;;13540:32;13536:203;13532:211;;13524:220;;13430:349;;13809:9;;13801:18;;13797:57;;13884:9;;13876:18;;;13872:57;;13951:9;;;13947:55;;15131:10;15261:43;15257:51;15499:11;;;15426:71;15422:89;15418:97;15595:72;15591:80;15747:3;15743:11;;11843:3927::o;5293:468::-;5354:9;5574:16;5568:23;;5586:3;5559:33;5552:41;5545:49;;5535:173;;5627:10;5621:4;5614:24;5689:4;5683;5676:18;5535:173;-1:-1:-1;5737:3:98;5730:11;;;;5726:19;;5293:468::o;2809:424::-;2870:9;3063:1;3059;3055:6;3051:14;3048:1;3045:21;3042:1;3038:29;3035:145;;;3099:10;3093:4;3086:24;3161:4;3155;3148:18;3035:145;-1:-1:-1;3213:3:98;3202:9;;3198:19;;2809:424::o;8260:3448::-;8309:8;8504:21;8499:1;:26;8495:40;;8260:3448;;;:::o;8495:40::-;8841:21;8838:1;8834:29;8824:164;;8900:10;8894:4;8887:24;8965:4;8959;8952:18;8824:164;9280:7;9274:2;9269:7;;;9268:19;;-1:-1:-1;9551:8:98;9619:2;9575:29;9564:7;;;9563:41;9607:7;9563:51;9562:59;;9647:29;9643:33;;9639:37;;;10328:35;;;10383:5;;9959:2;10382:13;;;10399:32;10381:50;10451:5;;10450:13;;10449:51;;10520:5;;10519:13;;10536:34;10518:52;10590:5;;10589:13;;10588:53;;10661:5;;10660:13;;10677:35;10659:53;9965:32;9898:31;9894:35;;9949:5;;9948:13;;9947:50;;;10022:5;;;:40;;10082:5;10081:13;;;10098:35;10080:53;10151:5;;;10160:40;10151:50;11079:10;11607:49;11594:62;11669:3;:7;;;;11593:84;;;;;;-1:-1:-1;;8260:3448:98:o;7938:186::-;7997:6;8081:36;2458:4;8100:1;8089:8;8095:1;8089:5;:8::i;:::-;:12;;;;:::i;:::-;8088:28;;;;:::i;:::-;8081:6;:36::i;:::-;8074:43;;7938:186;;;;;:::o;2826:363:176:-;2891:21;3066:11;3080:16;3086:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;3080:16;3170:1;3066:30;;;;;3161:11;3146:27;;;;2826:363;-1:-1:-1;;2826:363:176:o;38605:677:164:-;38755:27;38854:25;38882:7;:71;;38915:38;:25;;;38941:11;38915:25;:38::i;:::-;38882:71;;;38892:20;:4;:18;;;:20::i;:::-;38854:99;;39121:9;39131:6;39121:17;;;;;;;;:::i;:::-;;;;;;;;;;;39109:29;;39148:128;39155:18;;;;39183:20;;;;39155:18;;:50;39148:128;;39243:21;;39233:9;:32;;:9;;39243:21;;;39233:32;;;;;;:::i;:::-;;;;;;;;;;;39221:44;;39148:128;;;38788:494;38605:677;;;;;:::o;43519:319::-;43590:10;43613:14;43629:20;43651:14;43667:20;43703:44;43735:11;43703:31;:44::i;:::-;43612:135;;;;;;;;43765:66;43786:8;43796:11;43809:8;43819:11;43765:20;:66::i;:::-;43757:74;43519:319;-1:-1:-1;;;;;;43519:319:164:o;39797:3468::-;39901:20;39923:21;39946:20;39968:21;40042:16;40061:6;40042:25;;40077:23;40103:9;40113:8;40103:19;;;;;;;;:::i;:::-;;;;;;;;;40245:14;40103:19;;;;;40245:14;;;;40103:19;;-1:-1:-1;40271:11:164;;40245:22;;:14;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;40245:22:164;:37;;;40241:67;;40291:17;;;;;;;;;;;;;;40241:67;40659:20;40723:5;40738:571;40761:14;;;;40787:11;;40761:22;;:14;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;40761:22:164;40746:37;;;;;40745:53;40738:571;;;40836:17;;;;41179:15;:11;40836:17;41179:15;:::i;:::-;41163:12;:31;41159:58;;41212:5;41196:21;;41159:58;41240:9;41250:11;41240:22;;;;;;;;:::i;:::-;;;;;;;;;;;41232:30;;41287:11;41276:22;;40800:509;40738:571;;;41622:22;;;;;41646:14;;;;41622:22;;;;;41646:14;41577:20;41646:14;41688:45;;:26;:20;:11;:18;;4185:1:176;4181:17;;4060:154;41688:20:164;:24;;3001:9:177;2881:145;41688:26:164;:45;;;41671:62;;42228:9;42224:1035;;;42567:1;42540:24;:9;:22;;;:24::i;:::-;:28;;;42536:349;;;42588:26;42617:70;42650:19;42668:1;42650:13;;;:19;:::i;:::-;42672:8;42682:4;42617:18;:70::i;:::-;42739:14;;;;42755:17;;;;;42739:14;;-1:-1:-1;42755:17:164;;;-1:-1:-1;42536:349:164;;-1:-1:-1;42536:349:164;;42840:18;:23;42812:58;;42536:349;42932:11;;;;42945:14;;;;42932:11;;-1:-1:-1;42945:14:164;;;-1:-1:-1;42224:1035:164;;;42991:26;43020:70;43053:19;:13;;;43071:1;43053:19;:::i;43020:70::-;43138:11;;;;;43151:14;;;;;43214;;;;43230:17;;;43138:11;;-1:-1:-1;43151:14:164;;;;;-1:-1:-1;43214:14:164;;-1:-1:-1;43230:17:164;;-1:-1:-1;;42224:1035:164;39995:3270;;;;;;;39797:3468;;;;;:::o;44205:616::-;44400:10;44622:16;;;:23;:192;;44752:60;;;;;;16946:25:357;;;16990:34;17060:15;;;17040:18;;;17033:43;;;;17092:18;;;17085:34;;;17155:15;;;17135:18;;;17128:43;16918:19;;44752:60:164;;;;;;;;;;;;44742:71;;;;;;44622:192;;;44691:9;44702:12;44680:35;;;;;;;;17415:25:357;;;17488:34;17476:47;17471:2;17456:18;;17449:75;17403:2;17388:18;;17182:348;44680:35:164;;;;;;;;;;;;;44670:46;;;;;;44614:200;44205:616;-1:-1:-1;;;;;44205:616:164:o;5396:336:176:-;5478:19;5509:11;5523:16;5529:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;5523:16;5509:30;;;;5604:3;5593:9;5589:19;5713:1;5702:9;5698:17;5693:1;5689;5678:9;5674:17;5670:25;5658:9;5647;5643:25;5640:56;5636:80;5621:95;;;5558:168;5396:336;;;;:::o;35528:361:164:-;35721:12;;;;;35788:18;;;35706:12;35788:18;;;;;;;;;;;:26;;35721:12;;;;;;;35788:26;;35721:12;;35788:26;:::i;:::-;;;;-1:-1:-1;;35853:29:164;;;;;:11;9795:55:357;;;35853:29:164;;;9777:74:357;9867:18;;;9860:34;;;35853:4:164;:11;;;;9750:18:357;;35853:29:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7263:794:176;7412:18;7553:20;7532:17;:9;:15;;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;7532:17;:41;;;7528:71;;7582:17;;;;;;;;;;;;;;7528:71;7665:24;7679:9;7665:13;:24::i;:::-;7653:36;;7946:20;7925:17;:9;:15;;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;7925:17;:41;;;7921:130;;7994:46;8015:24;:20;8038:1;8015:24;:::i;:::-;7994:20;;;;;:46::i;6034:710::-;6100:18;6263:14;;6294:1;6279:17;;6259:38;6100:18;6398:10;6259:38;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;6398:10;6384:24;;6607:19;;;;6718:9;;6712:16;;6034:710;-1:-1:-1;;;6034:710:176:o;4635:313::-;4717:20;4749:11;4763:16;4769:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;4763:16;4749:30;;;;4844:3;4833:9;4829:19;4929:1;4925;4914:9;4910:17;4906:25;4894:9;4883;4879:25;4876:56;4861:71;;;4798:144;4635:313;;;;:::o;252:184:357:-;304:77;301:1;294:88;401:4;398:1;391:15;425:4;422:1;415:15;441:402;590:2;575:18;;623:1;612:13;;602:201;;659:77;656:1;649:88;760:4;757:1;750:15;788:4;785:1;778:15;602:201;812:25;;;441:402;:::o;1057:248::-;1125:6;1133;1186:2;1174:9;1165:7;1161:23;1157:32;1154:52;;;1202:1;1199;1192:12;1154:52;-1:-1:-1;;1225:23:357;;;1295:2;1280:18;;;1267:32;;-1:-1:-1;1057:248:357:o;2511:531::-;2553:3;2591:5;2585:12;2618:6;2613:3;2606:19;2643:1;2653:162;2667:6;2664:1;2661:13;2653:162;;;2729:4;2785:13;;;2781:22;;2775:29;2757:11;;;2753:20;;2746:59;2682:12;2653:162;;;2833:6;2830:1;2827:13;2824:87;;;2899:1;2892:4;2883:6;2878:3;2874:16;2870:27;2863:38;2824:87;-1:-1:-1;2956:2:357;2944:15;2961:66;2940:88;2931:98;;;;3031:4;2927:109;;2511:531;-1:-1:-1;;2511:531:357:o;3047:220::-;3196:2;3185:9;3178:21;3159:4;3216:45;3257:2;3246:9;3242:18;3234:6;3216:45;:::i;4037:154::-;4123:42;4116:5;4112:54;4105:5;4102:65;4092:93;;4181:1;4178;4171:12;4092:93;4037:154;:::o;4196:247::-;4255:6;4308:2;4296:9;4287:7;4283:23;4279:32;4276:52;;;4324:1;4321;4314:12;4276:52;4363:9;4350:23;4382:31;4407:5;4382:31;:::i;:::-;4432:5;4196:247;-1:-1:-1;;;4196:247:357:o;4448:160::-;4513:20;;4569:13;;4562:21;4552:32;;4542:60;;4598:1;4595;4588:12;4542:60;4448:160;;;:::o;4613:344::-;4715:6;4723;4731;4784:2;4772:9;4763:7;4759:23;4755:32;4752:52;;;4800:1;4797;4790:12;4752:52;4836:9;4823:23;4813:33;;4893:2;4882:9;4878:18;4865:32;4855:42;;4916:35;4947:2;4936:9;4932:18;4916:35;:::i;:::-;4906:45;;4613:344;;;;;:::o;5638:180::-;5697:6;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;-1:-1:-1;5789:23:357;;5638:180;-1:-1:-1;5638:180:357:o;5823:332::-;5913:6;5966:2;5954:9;5945:7;5941:23;5937:32;5934:52;;;5982:1;5979;5972:12;5934:52;6021:9;6008:23;6071:34;6064:5;6060:46;6053:5;6050:57;6040:85;;6121:1;6118;6111:12;7033:347;7084:8;7094:6;7148:3;7141:4;7133:6;7129:17;7125:27;7115:55;;7166:1;7163;7156:12;7115:55;-1:-1:-1;7189:20:357;;7232:18;7221:30;;7218:50;;;7264:1;7261;7254:12;7218:50;7301:4;7293:6;7289:17;7277:29;;7353:3;7346:4;7337:6;7329;7325:19;7321:30;7318:39;7315:59;;;7370:1;7367;7360:12;7315:59;7033:347;;;;;:::o;7385:854::-;7490:6;7498;7506;7514;7522;7530;7583:3;7571:9;7562:7;7558:23;7554:33;7551:53;;;7600:1;7597;7590:12;7551:53;7636:9;7623:23;7613:33;;7665:35;7696:2;7685:9;7681:18;7665:35;:::i;:::-;7655:45;;7751:2;7740:9;7736:18;7723:32;7774:18;7815:2;7807:6;7804:14;7801:34;;;7831:1;7828;7821:12;7801:34;7870:58;7920:7;7911:6;7900:9;7896:22;7870:58;:::i;:::-;7947:8;;-1:-1:-1;7844:84:357;-1:-1:-1;8035:2:357;8020:18;;8007:32;;-1:-1:-1;8051:16:357;;;8048:36;;;8080:1;8077;8070:12;8048:36;;8119:60;8171:7;8160:8;8149:9;8145:24;8119:60;:::i;:::-;7385:854;;;;-1:-1:-1;7385:854:357;;-1:-1:-1;7385:854:357;;8198:8;;7385:854;-1:-1:-1;;;7385:854:357:o;8653:316::-;8730:6;8738;8746;8799:2;8787:9;8778:7;8774:23;8770:32;8767:52;;;8815:1;8812;8805:12;8767:52;-1:-1:-1;;8838:23:357;;;8908:2;8893:18;;8880:32;;-1:-1:-1;8959:2:357;8944:18;;;8931:32;;8653:316;-1:-1:-1;8653:316:357:o;8974:435::-;9247:10;9239:6;9235:23;9224:9;9217:42;9295:6;9290:2;9279:9;9275:18;9268:34;9338:2;9333;9322:9;9318:18;9311:30;9198:4;9358:45;9399:2;9388:9;9384:18;9376:6;9358:45;:::i;9414:184::-;9466:77;9463:1;9456:88;9563:4;9560:1;9553:15;9587:4;9584:1;9577:15;10115:184;10167:77;10164:1;10157:88;10264:4;10261:1;10254:15;10288:4;10285:1;10278:15;10304:128;10344:3;10375:1;10371:6;10368:1;10365:13;10362:39;;;10381:18;;:::i;:::-;-1:-1:-1;10417:9:357;;10304:128::o;10437:229::-;10476:4;10505:18;10573:10;;;;10543;;10595:12;;;10592:38;;;10610:18;;:::i;:::-;10647:13;;10437:229;-1:-1:-1;;;10437:229:357:o;10671:125::-;10711:4;10739:1;10736;10733:8;10730:34;;;10744:18;;:::i;:::-;-1:-1:-1;10781:9:357;;10671:125::o;10801:270::-;10840:7;10872:18;10917:2;10914:1;10910:10;10947:2;10944:1;10940:10;11003:3;10999:2;10995:12;10990:3;10987:21;10980:3;10973:11;10966:19;10962:47;10959:73;;;11012:18;;:::i;:::-;11052:13;;10801:270;-1:-1:-1;;;;10801:270:357:o;11076:272::-;11182:6;11190;11243:2;11231:9;11222:7;11218:23;11214:32;11211:52;;;11259:1;11256;11249:12;11211:52;-1:-1:-1;;11282:16:357;;11338:2;11323:18;;;11317:25;11282:16;;11317:25;;-1:-1:-1;11076:272:357:o;11353:184::-;11405:77;11402:1;11395:88;11502:4;11499:1;11492:15;11526:4;11523:1;11516:15;11542:120;11582:1;11608;11598:35;;11613:18;;:::i;:::-;-1:-1:-1;11647:9:357;;11542:120::o;11667:228::-;11707:7;11833:1;11765:66;11761:74;11758:1;11755:81;11750:1;11743:9;11736:17;11732:105;11729:131;;;11840:18;;:::i;:::-;-1:-1:-1;11880:9:357;;11667:228::o;11900:112::-;11932:1;11958;11948:35;;11963:18;;:::i;:::-;-1:-1:-1;11997:9:357;;11900:112::o;12017:246::-;12057:4;12086:34;12170:10;;;;12140;;12192:12;;;12189:38;;;12207:18;;:::i;12268:253::-;12308:3;12336:34;12397:2;12394:1;12390:10;12427:2;12424:1;12420:10;12458:3;12454:2;12450:12;12445:3;12442:21;12439:47;;;12466:18;;:::i;:::-;12502:13;;12268:253;-1:-1:-1;;;;12268:253:357:o;12526:271::-;12709:6;12701;12696:3;12683:33;12665:3;12735:16;;12760:13;;;12735:16;12526:271;-1:-1:-1;12526:271:357:o;12802:325::-;12890:6;12885:3;12878:19;12942:6;12935:5;12928:4;12923:3;12919:14;12906:43;;12994:1;12987:4;12978:6;12973:3;12969:16;12965:27;12958:38;12860:3;13116:4;13046:66;13041:2;13033:6;13029:15;13025:88;13020:3;13016:98;13012:109;13005:116;;12802:325;;;;:::o;13132:502::-;13373:2;13362:9;13355:21;13336:4;13399:61;13456:2;13445:9;13441:18;13433:6;13425;13399:61;:::i;:::-;13508:9;13500:6;13496:22;13491:2;13480:9;13476:18;13469:50;13536:49;13578:6;13570;13562;13536:49;:::i;:::-;13528:57;;;13621:6;13616:2;13605:9;13601:18;13594:34;13132:502;;;;;;;;:::o;13639:184::-;13709:6;13762:2;13750:9;13741:7;13737:23;13733:32;13730:52;;;13778:1;13775;13768:12;13730:52;-1:-1:-1;13801:16:357;;13639:184;-1:-1:-1;13639:184:357:o;13828:195::-;13866:4;13903;13900:1;13896:12;13935:4;13932:1;13928:12;13960:3;13955;13952:12;13949:38;;;13967:18;;:::i;:::-;14004:13;;;13828:195;-1:-1:-1;;;13828:195:357:o;14028:157::-;14058:1;14092:4;14089:1;14085:12;14116:3;14106:37;;14123:18;;:::i;:::-;14175:3;14168:4;14165:1;14161:12;14157:22;14152:27;;;14028:157;;;;:::o;14190:276::-;14285:6;14338:2;14326:9;14317:7;14313:23;14309:32;14306:52;;;14354:1;14351;14344:12;14306:52;14386:9;14380:16;14405:31;14430:5;14405:31;:::i;15424:195::-;15463:3;15494:66;15487:5;15484:77;15481:103;;15564:18;;:::i;:::-;-1:-1:-1;15611:1:357;15600:13;;15424:195::o;15624:655::-;15663:7;15695:66;15787:1;15784;15780:9;15815:1;15812;15808:9;15860:1;15856:2;15852:10;15849:1;15846:17;15841:2;15837;15833:11;15829:35;15826:61;;;15867:18;;:::i;:::-;15906:66;15998:1;15995;15991:9;16045:1;16041:2;16036:11;16033:1;16029:19;16024:2;16020;16016:11;16012:37;16009:63;;;16052:18;;:::i;:::-;16098:1;16095;16091:9;16081:19;;16145:1;16141:2;16136:11;16133:1;16129:19;16124:2;16120;16116:11;16112:37;16109:63;;;16152:18;;:::i;:::-;16217:1;16213:2;16208:11;16205:1;16201:19;16196:2;16192;16188:11;16184:37;16181:63;;;16224:18;;:::i;:::-;-1:-1:-1;;;16264:9:357;;;;;15624:655;-1:-1:-1;;;15624:655:357:o;16284:308::-;16323:1;16349;16339:35;;16354:18;;:::i;:::-;16471:66;16468:1;16465:73;16396:66;16393:1;16390:73;16386:153;16383:179;;;16542:18;;:::i;:::-;-1:-1:-1;16576:10:357;;16284:308::o","linkReferences":{},"immutableReferences":{"97720":[{"start":1643,"length":32},{"start":9176,"length":32}],"97723":[{"start":2439,"length":32},{"start":4347,"length":32},{"start":8062,"length":32},{"start":8196,"length":32},{"start":8719,"length":32},{"start":9018,"length":32}],"97726":[{"start":2256,"length":32},{"start":4239,"length":32},{"start":4440,"length":32},{"start":4824,"length":32},{"start":8985,"length":32},{"start":10781,"length":32},{"start":12541,"length":32},{"start":14380,"length":32},{"start":14682,"length":32},{"start":14939,"length":32},{"start":15152,"length":32}],"97730":[{"start":2205,"length":32},{"start":4585,"length":32},{"start":4730,"length":32},{"start":4975,"length":32},{"start":7789,"length":32},{"start":7855,"length":32},{"start":11501,"length":32}],"97734":[{"start":1055,"length":32},{"start":9414,"length":32},{"start":10267,"length":32}],"97738":[{"start":1702,"length":32},{"start":6175,"length":32},{"start":11247,"length":32}],"97742":[{"start":1106,"length":32},{"start":3493,"length":32},{"start":5895,"length":32},{"start":7265,"length":32},{"start":16177,"length":32}],"97746":[{"start":1291,"length":32},{"start":3103,"length":32},{"start":6240,"length":32}],"97749":[{"start":2122,"length":32},{"start":11093,"length":32}],"97753":[{"start":1478,"length":32},{"start":4687,"length":32},{"start":4877,"length":32},{"start":4919,"length":32}]}},"methodIdentifiers":{"absolutePrestate()":"8d450a95","addLocalData(uint256,uint256,uint256)":"f8f43ff6","anchorStateRegistry()":"5c0cba33","attack(uint256,bytes32)":"c55cd0c7","claimCredit(address)":"60e27464","claimData(uint256)":"c6f0308c","claimDataLen()":"8980e0cc","claims(bytes32)":"eff0f592","clockExtension()":"6b6716c0","createdAt()":"cf09e0d0","credit(address)":"d5d44d80","defend(uint256,bytes32)":"35fef567","extraData()":"609d3334","gameCreator()":"37b1b229","gameData()":"fa24f743","gameType()":"bbdc02db","getChallengerDuration(uint256)":"bd8da956","getRequiredBond(uint128)":"c395e1ca","initialize()":"8129fc1c","l1Head()":"6361506d","l2BlockNumber()":"8b85902b","l2ChainId()":"d6ae3cd5","maxClockDuration()":"dabd396d","maxGameDepth()":"fa315aa9","move(uint256,bytes32,bool)":"632247ea","resolve()":"2810e1d6","resolveClaim(uint256)":"fdffbb28","resolvedAt()":"19effeb4","resolvedSubgames(uint256)":"fe2bbeb2","rootClaim()":"bcef3b55","splitDepth()":"ec5e6308","startingBlockNumber()":"70872aa5","startingOutputRoot()":"57da950e","startingRootHash()":"25fc2ace","status()":"200d2ed2","step(uint256,bool,bytes,bytes)":"d8cc1a3c","subgames(uint256,uint256)":"2ad69aeb","version()":"54fd4d50","vm()":"3a768463","weth()":"3fc8cef3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_splitDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_clockExtension\",\"type\":\"uint64\"},{\"internalType\":\"Duration\",\"name\":\"_maxClockDuration\",\"type\":\"uint64\"},{\"internalType\":\"contract IBigStepper\",\"name\":\"_vm\",\"type\":\"address\"},{\"internalType\":\"contract IDelayedWETH\",\"name\":\"_weth\",\"type\":\"address\"},{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"_anchorStateRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_l2ChainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AnchorRootNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAboveSplit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectBondAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClockExtension\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalIdent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSplitDepth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDepthTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCreditToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"absolutePrestate\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"absolutePrestate_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anchorStateRegistry\",\"outputs\":[{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"registry_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"claimCredit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"counteredBy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"bond\",\"type\":\"uint128\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ClaimHash\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clockExtension\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"clockExtension_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"credit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"getChallengerDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"duration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Position\",\"name\":\"_position\",\"type\":\"uint128\"}],\"name\":\"getRequiredBond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredBond_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2ChainId_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxClockDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"maxClockDuration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGameDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxGameDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolvedSubgames\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"splitDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"splitDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"startingBlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingOutputRoot\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingRootHash\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"startingRootHash_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"subgames\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vm\",\"outputs\":[{\"internalType\":\"contract IBigStepper\",\"name\":\"vm_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract IDelayedWETH\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"UnexpectedRootClaim(bytes32)\":[{\"params\":{\"rootClaim\":\"is the claim that was unexpected.\"}}]},\"kind\":\"dev\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"params\":{\"_execLeafIdx\":\"The index of the leaf claim in an execution subgame that requires the local data for a step.\",\"_ident\":\"The local identifier of the data to post.\",\"_partOffset\":\"The offset of the data to post.\"}},\"attack(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative attack position.\",\"_parentIndex\":\"Index of the `Claim` to attack in the `claimData` array.\"}},\"claimCredit(address)\":{\"params\":{\"_recipient\":\"The owner and recipient of the credit.\"}},\"constructor\":{\"params\":{\"_absolutePrestate\":\"The absolute prestate of the instruction trace.\",\"_anchorStateRegistry\":\"The contract that stores the anchor state for each game type.\",\"_clockExtension\":\"The clock extension to perform when the remaining duration is less than the extension.\",\"_gameType\":\"The type ID of the game.\",\"_l2ChainId\":\"Chain ID of the L2 network this contract argues about.\",\"_maxClockDuration\":\"The maximum amount of time that may accumulate on a team's chess clock.\",\"_maxGameDepth\":\"The maximum depth of bisection.\",\"_splitDepth\":\"The final depth of the output bisection portion of the game.\",\"_vm\":\"An onchain VM that performs single instruction steps on an FPP trace.\",\"_weth\":\"WETH contract for holding ETH.\"}},\"defend(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative defense position.\",\"_parentIndex\":\"Index of the claim to defend in the `claimData` array.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #4\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameCreator()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"creator_\":\"The creator of the dispute game.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"getChallengerDuration(uint256)\":{\"params\":{\"_claimIndex\":\"The index of the subgame root claim.\"},\"returns\":{\"duration_\":\"The time elapsed on the potential challenger to `_claimIndex`'s chess clock.\"}},\"getRequiredBond(uint128)\":{\"params\":{\"_position\":\"The position of the bonded interaction.\"},\"returns\":{\"requiredBond_\":\"The required ETH bond for the given move, in wei.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"l1Head()\":{\"details\":\"`clones-with-immutable-args` argument #3\",\"returns\":{\"l1Head_\":\"The parent hash of the L1 block when the dispute game was created.\"}},\"move(uint256,bytes32,bool)\":{\"params\":{\"_challengeIndex\":\"The index of the claim being moved against.\",\"_claim\":\"The claim at the next logical position in the game.\",\"_isAttack\":\"Whether or not the move is an attack or defense.\"}},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolveClaim(uint256)\":{\"details\":\"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\",\"params\":{\"_claimIndex\":\"The index of the subgame root claim to resolve.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"step(uint256,bool,bytes,bytes)\":{\"details\":\"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.\",\"params\":{\"_claimIndex\":\"The index of the challenged claim within `claimData`.\",\"_isAttack\":\"Whether or not the step is an attack or a defense.\",\"_proof\":\"Proof to access memory nodes in the VM's merkle state tree.\",\"_stateData\":\"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM.\"}}},\"stateVariables\":{\"status\":{\"return\":\"The current status of the game.\",\"returns\":{\"_0\":\"The current status of the game.\"}},\"version\":{\"custom:semver\":\"0.17.0\"}},\"title\":\"FaultDisputeGame\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"notice\":\"Thrown when a dispute game has already been initialized.\"}],\"AnchorRootNotFound()\":[{\"notice\":\"Thrown when an anchor root is not found for a given game type.\"}],\"BondTransferFailed()\":[{\"notice\":\"Thrown when the transfer of credit to a recipient account reverts.\"}],\"CannotDefendRootClaim()\":[{\"notice\":\"Thrown when a defense against the root claim is attempted.\"}],\"ClaimAboveSplit()\":[{\"notice\":\"Thrown when a parent output root is attempted to be found on a claim that is in the output root portion of the tree.\"}],\"ClaimAlreadyExists()\":[{\"notice\":\"Thrown when a claim is attempting to be made that already exists.\"}],\"ClaimAlreadyResolved()\":[{\"notice\":\"Thrown when resolving a claim that has already been resolved.\"}],\"ClockNotExpired()\":[{\"notice\":\"Thrown when the game is attempted to be resolved too early.\"}],\"ClockTimeExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made after the clock has timed out.\"}],\"DuplicateStep()\":[{\"notice\":\"Thrown when trying to step against a claim for a second time, after it has already been countered with an instruction step.\"}],\"GameDepthExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made at or greater than the max depth of the game.\"}],\"GameNotInProgress()\":[{\"notice\":\"Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when the game is not in progress.\"}],\"IncorrectBondAmount()\":[{\"notice\":\"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction.\"}],\"InvalidClockExtension()\":[{\"notice\":\"Thrown on deployment if the max clock duration is less than or equal to the clock extension.\"}],\"InvalidLocalIdent()\":[{\"notice\":\"Thrown when an invalid local identifier is passed to the `addLocalData` function.\"}],\"InvalidParent()\":[{\"notice\":\"Thrown when a step is attempted above the maximum game depth.\"}],\"InvalidPrestate()\":[{\"notice\":\"Thrown when an invalid prestate is supplied to `step`.\"}],\"InvalidSplitDepth()\":[{\"notice\":\"Thrown on deployment if the split depth is greater than or equal to the max depth of the game.\"}],\"MaxDepthTooLarge()\":[{\"notice\":\"Thrown on deployment if the max depth is greater than `LibPosition.`\"}],\"NoCreditToClaim()\":[{\"notice\":\"Thrown when a credit claim is attempted for a value of 0.\"}],\"OutOfOrderResolution()\":[{\"notice\":\"Thrown when resolving claims out of order.\"}],\"UnexpectedRootClaim(bytes32)\":[{\"notice\":\"Thrown when the root claim has an unexpected VM status. Some games can only start with a root-claim with a specific status.\"}],\"ValidStep()\":[{\"notice\":\"Thrown when a step is made that computes the expected post state correctly.\"}]},\"events\":{\"Move(uint256,bytes32,address)\":{\"notice\":\"Emitted when a new claim is added to the DAG by `claimant`\"},\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"absolutePrestate()\":{\"notice\":\"Returns the absolute prestate of the instruction trace.\"},\"addLocalData(uint256,uint256,uint256)\":{\"notice\":\"Posts the requested local data to the VM's `PreimageOralce`.\"},\"anchorStateRegistry()\":{\"notice\":\"Returns the anchor state registry contract.\"},\"attack(uint256,bytes32)\":{\"notice\":\"Attack a disagreed upon `Claim`.\"},\"claimCredit(address)\":{\"notice\":\"Claim the credit belonging to the recipient address.\"},\"claimData(uint256)\":{\"notice\":\"An append-only array of all claims made during the dispute game.\"},\"claimDataLen()\":{\"notice\":\"Returns the length of the `claimData` array.\"},\"claims(bytes32)\":{\"notice\":\"A mapping to allow for constant-time lookups of existing claims.\"},\"clockExtension()\":{\"notice\":\"Returns the clock extension constant.\"},\"createdAt()\":{\"notice\":\"The starting timestamp of the game\"},\"credit(address)\":{\"notice\":\"Credited balances for winning participants.\"},\"defend(uint256,bytes32)\":{\"notice\":\"Defend an agreed upon `Claim`.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameCreator()\":{\"notice\":\"Getter for the creator of the dispute game.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"getChallengerDuration(uint256)\":{\"notice\":\"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes out at `MAX_CLOCK_DURATION`.\"},\"getRequiredBond(uint128)\":{\"notice\":\"Returns the required bond for a given move kind.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"Getter for the parent hash of the L1 block when the dispute game was created.\"},\"l2BlockNumber()\":{\"notice\":\"The l2BlockNumber of the disputed output root in the `L2OutputOracle`.\"},\"l2ChainId()\":{\"notice\":\"Returns the chain ID of the L2 network this contract argues about.\"},\"maxClockDuration()\":{\"notice\":\"Returns the max clock duration.\"},\"maxGameDepth()\":{\"notice\":\"Returns the max game depth.\"},\"move(uint256,bytes32,bool)\":{\"notice\":\"Generic move function, used for both `attack` and `defend` moves.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolveClaim(uint256)\":{\"notice\":\"Resolves the subgame rooted at the given claim index.\"},\"resolvedAt()\":{\"notice\":\"The timestamp of the game's global resolution.\"},\"resolvedSubgames(uint256)\":{\"notice\":\"An interneal mapping of resolved subgames rooted at a claim index.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"splitDepth()\":{\"notice\":\"Returns the split depth.\"},\"startingBlockNumber()\":{\"notice\":\"Only the starting block number of the game.\"},\"startingOutputRoot()\":{\"notice\":\"The latest finalized output root, serving as the anchor for output bisection.\"},\"startingRootHash()\":{\"notice\":\"Only the starting output root of the game.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"},\"step(uint256,bool,bytes,bytes)\":{\"notice\":\"Perform an instruction step via an on-chain fault proof processor.\"},\"subgames(uint256,uint256)\":{\"notice\":\"A mapping of subgames rooted at a claim index to other claim indices in the subgame.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"vm()\":{\"notice\":\"Returns the address of the VM.\"},\"weth()\":{\"notice\":\"Returns the WETH contract for holding ETH.\"}},\"notice\":\"An implementation of the `IFaultDisputeGame` interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/FaultDisputeGame.sol\":\"FaultDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solady/src/utils/Clone.sol\":{\"keccak256\":\"0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b\",\"dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/dispute/FaultDisputeGame.sol\":{\"keccak256\":\"0x0d90358576f7b5c14cfe338937ed4fea7d945f9a1b5e68111196310554b485b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d6d4ce62af4902e17af3a70b6c4688be4d148498c841af9c8ead2c076794e6e\",\"dweb:/ipfs/QmS2ebpEDxbhnUwXYnKEChS2zVpFvfdnJr3AbfDSQovBAN\"]},\"src/dispute/interfaces/IAnchorStateRegistry.sol\":{\"keccak256\":\"0x5fd05f2482d149668897e54f92d556a0c3512aa35b51ba800ef15d18dd490cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://689d621bc5c43a41d5232980f0eceecd7a3d8aa99438dfd9fed5f73d5ecd2887\",\"dweb:/ipfs/QmQ5jw54TkdxLuLFti6JZown54rGQ3m3Q93pvnVU1j1HRj\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/interfaces/IDelayedWETH.sol\":{\"keccak256\":\"0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8\",\"dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a\",\"dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd\",\"dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh\"]},\"src/dispute/interfaces/IFaultDisputeGame.sol\":{\"keccak256\":\"0xe2f3acb614ecffd6e0fee98443cf58fa95c1209f4ee43e723781733823da3437\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4cffbd5b53e6459aad472249e629ae5f52c725b6f6828050df019a18ab50278\",\"dweb:/ipfs/QmTC1GgzbwSyqd9fbJz2veqHnbKJfAK5tBr5jUZcC5N271\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/interfaces/IWETH.sol\":{\"keccak256\":\"0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766\",\"dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48\",\"dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046\",\"dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e\",\"dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961\",\"dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"uint256","name":"_maxGameDepth","type":"uint256"},{"internalType":"uint256","name":"_splitDepth","type":"uint256"},{"internalType":"Duration","name":"_clockExtension","type":"uint64"},{"internalType":"Duration","name":"_maxClockDuration","type":"uint64"},{"internalType":"contract IBigStepper","name":"_vm","type":"address"},{"internalType":"contract IDelayedWETH","name":"_weth","type":"address"},{"internalType":"contract IAnchorStateRegistry","name":"_anchorStateRegistry","type":"address"},{"internalType":"uint256","name":"_l2ChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AnchorRootNotFound"},{"inputs":[],"type":"error","name":"BondTransferFailed"},{"inputs":[],"type":"error","name":"CannotDefendRootClaim"},{"inputs":[],"type":"error","name":"ClaimAboveSplit"},{"inputs":[],"type":"error","name":"ClaimAlreadyExists"},{"inputs":[],"type":"error","name":"ClaimAlreadyResolved"},{"inputs":[],"type":"error","name":"ClockNotExpired"},{"inputs":[],"type":"error","name":"ClockTimeExceeded"},{"inputs":[],"type":"error","name":"DuplicateStep"},{"inputs":[],"type":"error","name":"GameDepthExceeded"},{"inputs":[],"type":"error","name":"GameNotInProgress"},{"inputs":[],"type":"error","name":"IncorrectBondAmount"},{"inputs":[],"type":"error","name":"InvalidClockExtension"},{"inputs":[],"type":"error","name":"InvalidLocalIdent"},{"inputs":[],"type":"error","name":"InvalidParent"},{"inputs":[],"type":"error","name":"InvalidPrestate"},{"inputs":[],"type":"error","name":"InvalidSplitDepth"},{"inputs":[],"type":"error","name":"MaxDepthTooLarge"},{"inputs":[],"type":"error","name":"NoCreditToClaim"},{"inputs":[],"type":"error","name":"OutOfOrderResolution"},{"inputs":[{"internalType":"Claim","name":"rootClaim","type":"bytes32"}],"type":"error","name":"UnexpectedRootClaim"},{"inputs":[],"type":"error","name":"ValidStep"},{"inputs":[{"internalType":"uint256","name":"parentIndex","type":"uint256","indexed":true},{"internalType":"Claim","name":"claim","type":"bytes32","indexed":true},{"internalType":"address","name":"claimant","type":"address","indexed":true}],"type":"event","name":"Move","anonymous":false},{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"absolutePrestate","outputs":[{"internalType":"Claim","name":"absolutePrestate_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"uint256","name":"_execLeafIdx","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLocalData"},{"inputs":[],"stateMutability":"view","type":"function","name":"anchorStateRegistry","outputs":[{"internalType":"contract IAnchorStateRegistry","name":"registry_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimCredit"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"claimData","outputs":[{"internalType":"uint32","name":"parentIndex","type":"uint32"},{"internalType":"address","name":"counteredBy","type":"address"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint128","name":"bond","type":"uint128"},{"internalType":"Claim","name":"claim","type":"bytes32"},{"internalType":"Position","name":"position","type":"uint128"},{"internalType":"Clock","name":"clock","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"claimDataLen","outputs":[{"internalType":"uint256","name":"len_","type":"uint256"}]},{"inputs":[{"internalType":"ClaimHash","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"claims","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clockExtension","outputs":[{"internalType":"Duration","name":"clockExtension_","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"credit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"defend"},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gameCreator","outputs":[{"internalType":"address","name":"creator_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getChallengerDuration","outputs":[{"internalType":"Duration","name":"duration_","type":"uint64"}]},{"inputs":[{"internalType":"Position","name":"_position","type":"uint128"}],"stateMutability":"view","type":"function","name":"getRequiredBond","outputs":[{"internalType":"uint256","name":"requiredBond_","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"pure","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"l2BlockNumber","outputs":[{"internalType":"uint256","name":"l2BlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2ChainId","outputs":[{"internalType":"uint256","name":"l2ChainId_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxClockDuration","outputs":[{"internalType":"Duration","name":"maxClockDuration_","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxGameDepth","outputs":[{"internalType":"uint256","name":"maxGameDepth_","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_challengeIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"},{"internalType":"bool","name":"_isAttack","type":"bool"}],"stateMutability":"payable","type":"function","name":"move"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"resolveClaim"},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"resolvedSubgames","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"splitDepth","outputs":[{"internalType":"uint256","name":"splitDepth_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"startingBlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingOutputRoot","outputs":[{"internalType":"Hash","name":"root","type":"bytes32"},{"internalType":"uint256","name":"l2BlockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingRootHash","outputs":[{"internalType":"Hash","name":"startingRootHash_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"},{"internalType":"bool","name":"_isAttack","type":"bool"},{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"step"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"subgames","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vm","outputs":[{"internalType":"contract IBigStepper","name":"vm_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"contract IDelayedWETH","name":"weth_","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"claimCredit(address)":{"params":{"_recipient":"The owner and recipient of the credit."}},"constructor":{"params":{"_absolutePrestate":"The absolute prestate of the instruction trace.","_anchorStateRegistry":"The contract that stores the anchor state for each game type.","_clockExtension":"The clock extension to perform when the remaining duration is less than the extension.","_gameType":"The type ID of the game.","_l2ChainId":"Chain ID of the L2 network this contract argues about.","_maxClockDuration":"The maximum amount of time that may accumulate on a team's chess clock.","_maxGameDepth":"The maximum depth of bisection.","_splitDepth":"The final depth of the output bisection portion of the game.","_vm":"An onchain VM that performs single instruction steps on an FPP trace.","_weth":"WETH contract for holding ETH."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"getChallengerDuration(uint256)":{"params":{"_claimIndex":"The index of the subgame root claim."},"returns":{"duration_":"The time elapsed on the potential challenger to `_claimIndex`'s chess clock."}},"getRequiredBond(uint128)":{"params":{"_position":"The position of the bonded interaction."},"returns":{"requiredBond_":"The required ETH bond for the given move, in wei."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"move(uint256,bytes32,bool)":{"params":{"_challengeIndex":"The index of the claim being moved against.","_claim":"The claim at the next logical position in the game.","_isAttack":"Whether or not the move is an attack or defense."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"version":1},"userdoc":{"kind":"user","methods":{"absolutePrestate()":{"notice":"Returns the absolute prestate of the instruction trace."},"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"anchorStateRegistry()":{"notice":"Returns the anchor state registry contract."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"claimCredit(address)":{"notice":"Claim the credit belonging to the recipient address."},"claimData(uint256)":{"notice":"An append-only array of all claims made during the dispute game."},"claimDataLen()":{"notice":"Returns the length of the `claimData` array."},"claims(bytes32)":{"notice":"A mapping to allow for constant-time lookups of existing claims."},"clockExtension()":{"notice":"Returns the clock extension constant."},"createdAt()":{"notice":"The starting timestamp of the game"},"credit(address)":{"notice":"Credited balances for winning participants."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"getChallengerDuration(uint256)":{"notice":"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes out at `MAX_CLOCK_DURATION`."},"getRequiredBond(uint128)":{"notice":"Returns the required bond for a given move kind."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"l2ChainId()":{"notice":"Returns the chain ID of the L2 network this contract argues about."},"maxClockDuration()":{"notice":"Returns the max clock duration."},"maxGameDepth()":{"notice":"Returns the max game depth."},"move(uint256,bytes32,bool)":{"notice":"Generic move function, used for both `attack` and `defend` moves."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"The timestamp of the game's global resolution."},"resolvedSubgames(uint256)":{"notice":"An interneal mapping of resolved subgames rooted at a claim index."},"rootClaim()":{"notice":"Getter for the root claim."},"splitDepth()":{"notice":"Returns the split depth."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"The latest finalized output root, serving as the anchor for output bisection."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."},"subgames(uint256,uint256)":{"notice":"A mapping of subgames rooted at a claim index to other claim indices in the subgame."},"version()":{"notice":"Semantic version."},"vm()":{"notice":"Returns the address of the VM."},"weth()":{"notice":"Returns the WETH contract for holding ETH."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/FaultDisputeGame.sol":"FaultDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"lib/solady/src/utils/Clone.sol":{"keccak256":"0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22","urls":["bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b","dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW"],"license":"MIT"},"lib/solady/src/utils/FixedPointMathLib.sol":{"keccak256":"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160","urls":["bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260","dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/dispute/FaultDisputeGame.sol":{"keccak256":"0x0d90358576f7b5c14cfe338937ed4fea7d945f9a1b5e68111196310554b485b3","urls":["bzz-raw://5d6d4ce62af4902e17af3a70b6c4688be4d148498c841af9c8ead2c076794e6e","dweb:/ipfs/QmS2ebpEDxbhnUwXYnKEChS2zVpFvfdnJr3AbfDSQovBAN"],"license":"MIT"},"src/dispute/interfaces/IAnchorStateRegistry.sol":{"keccak256":"0x5fd05f2482d149668897e54f92d556a0c3512aa35b51ba800ef15d18dd490cb3","urls":["bzz-raw://689d621bc5c43a41d5232980f0eceecd7a3d8aa99438dfd9fed5f73d5ecd2887","dweb:/ipfs/QmQ5jw54TkdxLuLFti6JZown54rGQ3m3Q93pvnVU1j1HRj"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"},"src/dispute/interfaces/IDelayedWETH.sol":{"keccak256":"0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04","urls":["bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8","dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b","urls":["bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a","dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6"],"license":"MIT"},"src/dispute/interfaces/IDisputeGameFactory.sol":{"keccak256":"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda","urls":["bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd","dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh"],"license":"MIT"},"src/dispute/interfaces/IFaultDisputeGame.sol":{"keccak256":"0xe2f3acb614ecffd6e0fee98443cf58fa95c1209f4ee43e723781733823da3437","urls":["bzz-raw://e4cffbd5b53e6459aad472249e629ae5f52c725b6f6828050df019a18ab50278","dweb:/ipfs/QmTC1GgzbwSyqd9fbJz2veqHnbKJfAK5tBr5jUZcC5N271"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/interfaces/IWETH.sol":{"keccak256":"0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f","urls":["bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766","dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6","urls":["bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48","dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f","urls":["bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046","dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937","urls":["bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e","dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c","urls":["bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961","dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":97769,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"createdAt","offset":0,"slot":"0","type":"t_userDefinedValueType(Timestamp)103261"},{"astId":97773,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"resolvedAt","offset":8,"slot":"0","type":"t_userDefinedValueType(Timestamp)103261"},{"astId":97777,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"status","offset":16,"slot":"0","type":"t_enum(GameStatus)103277"},{"astId":97780,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"initialized","offset":17,"slot":"0","type":"t_bool"},{"astId":97785,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"claimData","offset":0,"slot":"1","type":"t_array(t_struct(ClaimData)100523_storage)dyn_storage"},{"astId":97790,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"credit","offset":0,"slot":"2","type":"t_mapping(t_address,t_uint256)"},{"astId":97796,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"claims","offset":0,"slot":"3","type":"t_mapping(t_userDefinedValueType(ClaimHash)103257,t_bool)"},{"astId":97802,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"subgames","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_array(t_uint256)dyn_storage)"},{"astId":97807,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"resolvedSubgames","offset":0,"slot":"5","type":"t_mapping(t_uint256,t_bool)"},{"astId":97811,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"startingOutputRoot","offset":0,"slot":"6","type":"t_struct(OutputRoot)103283_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(ClaimData)100523_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct IFaultDisputeGame.ClaimData[]","numberOfBytes":"32","base":"t_struct(ClaimData)100523_storage"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_enum(GameStatus)103277":{"encoding":"inplace","label":"enum GameStatus","numberOfBytes":"1"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_array(t_uint256)dyn_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256[])","numberOfBytes":"32","value":"t_array(t_uint256)dyn_storage"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_userDefinedValueType(ClaimHash)103257,t_bool)":{"encoding":"mapping","key":"t_userDefinedValueType(ClaimHash)103257","label":"mapping(ClaimHash => bool)","numberOfBytes":"32","value":"t_bool"},"t_struct(ClaimData)100523_storage":{"encoding":"inplace","label":"struct IFaultDisputeGame.ClaimData","numberOfBytes":"160","members":[{"astId":100507,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"parentIndex","offset":0,"slot":"0","type":"t_uint32"},{"astId":100509,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"counteredBy","offset":4,"slot":"0","type":"t_address"},{"astId":100511,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"claimant","offset":0,"slot":"1","type":"t_address"},{"astId":100513,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"bond","offset":0,"slot":"2","type":"t_uint128"},{"astId":100516,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"claim","offset":0,"slot":"3","type":"t_userDefinedValueType(Claim)103255"},{"astId":100519,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"position","offset":0,"slot":"4","type":"t_userDefinedValueType(Position)103269"},{"astId":100522,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"clock","offset":16,"slot":"4","type":"t_userDefinedValueType(Clock)103267"}]},"t_struct(OutputRoot)103283_storage":{"encoding":"inplace","label":"struct OutputRoot","numberOfBytes":"64","members":[{"astId":103280,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"root","offset":0,"slot":"0","type":"t_userDefinedValueType(Hash)103253"},{"astId":103282,"contract":"src/dispute/FaultDisputeGame.sol:FaultDisputeGame","label":"l2BlockNumber","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_userDefinedValueType(Claim)103255":{"encoding":"inplace","label":"Claim","numberOfBytes":"32"},"t_userDefinedValueType(ClaimHash)103257":{"encoding":"inplace","label":"ClaimHash","numberOfBytes":"32"},"t_userDefinedValueType(Clock)103267":{"encoding":"inplace","label":"Clock","numberOfBytes":"16"},"t_userDefinedValueType(Hash)103253":{"encoding":"inplace","label":"Hash","numberOfBytes":"32"},"t_userDefinedValueType(Position)103269":{"encoding":"inplace","label":"Position","numberOfBytes":"16"},"t_userDefinedValueType(Timestamp)103261":{"encoding":"inplace","label":"Timestamp","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"absolutePrestate()":{"notice":"Returns the absolute prestate of the instruction trace."},"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"anchorStateRegistry()":{"notice":"Returns the anchor state registry contract."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"claimCredit(address)":{"notice":"Claim the credit belonging to the recipient address."},"claimData(uint256)":{"notice":"An append-only array of all claims made during the dispute game."},"claimDataLen()":{"notice":"Returns the length of the `claimData` array."},"claims(bytes32)":{"notice":"A mapping to allow for constant-time lookups of existing claims."},"clockExtension()":{"notice":"Returns the clock extension constant."},"createdAt()":{"notice":"The starting timestamp of the game"},"credit(address)":{"notice":"Credited balances for winning participants."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"getChallengerDuration(uint256)":{"notice":"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes out at `MAX_CLOCK_DURATION`."},"getRequiredBond(uint128)":{"notice":"Returns the required bond for a given move kind."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"l2ChainId()":{"notice":"Returns the chain ID of the L2 network this contract argues about."},"maxClockDuration()":{"notice":"Returns the max clock duration."},"maxGameDepth()":{"notice":"Returns the max game depth."},"move(uint256,bytes32,bool)":{"notice":"Generic move function, used for both `attack` and `defend` moves."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"The timestamp of the game's global resolution."},"resolvedSubgames(uint256)":{"notice":"An interneal mapping of resolved subgames rooted at a claim index."},"rootClaim()":{"notice":"Getter for the root claim."},"splitDepth()":{"notice":"Returns the split depth."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"The latest finalized output root, serving as the anchor for output bisection."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."},"subgames(uint256,uint256)":{"notice":"A mapping of subgames rooted at a claim index to other claim indices in the subgame."},"version()":{"notice":"Semantic version."},"vm()":{"notice":"Returns the address of the VM."},"weth()":{"notice":"Returns the WETH contract for holding ETH."}},"events":{"Move(uint256,bytes32,address)":{"notice":"Emitted when a new claim is added to the DAG by `claimant`"},"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"errors":{"AlreadyInitialized()":[{"notice":"Thrown when a dispute game has already been initialized."}],"AnchorRootNotFound()":[{"notice":"Thrown when an anchor root is not found for a given game type."}],"BondTransferFailed()":[{"notice":"Thrown when the transfer of credit to a recipient account reverts."}],"CannotDefendRootClaim()":[{"notice":"Thrown when a defense against the root claim is attempted."}],"ClaimAboveSplit()":[{"notice":"Thrown when a parent output root is attempted to be found on a claim that is in the output root portion of the tree."}],"ClaimAlreadyExists()":[{"notice":"Thrown when a claim is attempting to be made that already exists."}],"ClaimAlreadyResolved()":[{"notice":"Thrown when resolving a claim that has already been resolved."}],"ClockNotExpired()":[{"notice":"Thrown when the game is attempted to be resolved too early."}],"ClockTimeExceeded()":[{"notice":"Thrown when a move is attempted to be made after the clock has timed out."}],"DuplicateStep()":[{"notice":"Thrown when trying to step against a claim for a second time, after it has already been countered with an instruction step."}],"GameDepthExceeded()":[{"notice":"Thrown when a move is attempted to be made at or greater than the max depth of the game."}],"GameNotInProgress()":[{"notice":"Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when the game is not in progress."}],"IncorrectBondAmount()":[{"notice":"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction."}],"InvalidClockExtension()":[{"notice":"Thrown on deployment if the max clock duration is less than or equal to the clock extension."}],"InvalidLocalIdent()":[{"notice":"Thrown when an invalid local identifier is passed to the `addLocalData` function."}],"InvalidParent()":[{"notice":"Thrown when a step is attempted above the maximum game depth."}],"InvalidPrestate()":[{"notice":"Thrown when an invalid prestate is supplied to `step`."}],"InvalidSplitDepth()":[{"notice":"Thrown on deployment if the split depth is greater than or equal to the max depth of the game."}],"MaxDepthTooLarge()":[{"notice":"Thrown on deployment if the max depth is greater than `LibPosition.`"}],"NoCreditToClaim()":[{"notice":"Thrown when a credit claim is attempted for a value of 0."}],"OutOfOrderResolution()":[{"notice":"Thrown when resolving claims out of order."}],"UnexpectedRootClaim(bytes32)":[{"notice":"Thrown when the root claim has an unexpected VM status. Some games can only start with a root-claim with a specific status."}],"ValidStep()":[{"notice":"Thrown when a step is made that computes the expected post state correctly."}]},"notice":"An implementation of the `IFaultDisputeGame` interface."},"devdoc":{"version":1,"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"claimCredit(address)":{"params":{"_recipient":"The owner and recipient of the credit."}},"constructor":{"params":{"_absolutePrestate":"The absolute prestate of the instruction trace.","_anchorStateRegistry":"The contract that stores the anchor state for each game type.","_clockExtension":"The clock extension to perform when the remaining duration is less than the extension.","_gameType":"The type ID of the game.","_l2ChainId":"Chain ID of the L2 network this contract argues about.","_maxClockDuration":"The maximum amount of time that may accumulate on a team's chess clock.","_maxGameDepth":"The maximum depth of bisection.","_splitDepth":"The final depth of the output bisection portion of the game.","_vm":"An onchain VM that performs single instruction steps on an FPP trace.","_weth":"WETH contract for holding ETH."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"getChallengerDuration(uint256)":{"params":{"_claimIndex":"The index of the subgame root claim."},"returns":{"duration_":"The time elapsed on the potential challenger to `_claimIndex`'s chess clock."}},"getRequiredBond(uint128)":{"params":{"_position":"The position of the bonded interaction."},"returns":{"requiredBond_":"The required ETH bond for the given move, in wei."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"move(uint256,bytes32,bool)":{"params":{"_challengeIndex":"The index of the claim being moved against.","_claim":"The claim at the next logical position in the game.","_isAttack":"Whether or not the move is an attack or defense."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"errors":{"UnexpectedRootClaim(bytes32)":[{"params":{"rootClaim":"is the claim that was unexpected."}}]},"title":"FaultDisputeGame"},"ast":{"absolutePath":"src/dispute/FaultDisputeGame.sol","id":99928,"exportedSymbols":{"AlreadyInitialized":[103120],"AnchorRootNotFound":[103192],"BadAuth":[103195],"BadExtraData":[103132],"BondAmount":[103259],"BondTransferFailed":[103129],"CannotDefendRootClaim":[103135],"Claim":[103255],"ClaimAboveSplit":[103177],"ClaimAlreadyExists":[103138],"ClaimAlreadyResolved":[103174],"ClaimHash":[103257],"Clock":[103267],"ClockNotExpired":[103150],"ClockTimeExceeded":[103147],"Clone":[60963],"DuplicateStep":[103189],"Duration":[103263],"FaultDisputeGame":[99927],"FixedPointMathLib":[62288],"GameAlreadyExists":[103111],"GameDepthExceeded":[103153],"GameId":[103265],"GameNotInProgress":[103144],"GameStatus":[103277],"GameType":[103271],"GameTypes":[103317],"Hash":[103253],"IAnchorStateRegistry":[100146],"IBigStepper":[100171],"IDelayedWETH":[100239],"IDisputeGame":[100327],"IFaultDisputeGame":[100608],"IInitializable":[100616],"IPreimageOracle":[96782],"ISemver":[109417],"IncorrectBondAmount":[103123],"InvalidClaim":[103141],"InvalidClockExtension":[103183],"InvalidLocalIdent":[103168],"InvalidParent":[103156],"InvalidPrestate":[103159],"InvalidSplitDepth":[103180],"L1HeadTooOld":[103165],"LibClaim":[101086],"LibClock":[101073],"LibDuration":[101099],"LibGameId":[100778],"LibGameType":[101151],"LibHash":[101112],"LibHashing":[100800],"LibPosition":[101018],"LibTimestamp":[101125],"LibVMStatus":[101138],"LocalPreimageKey":[103373],"MaxDepthTooLarge":[103186],"NoCreditToClaim":[103126],"NoImplementation":[103105],"OutOfOrderResolution":[103171],"OutputRoot":[103283],"Position":[103269],"Timestamp":[103261],"Types":[104349],"UnexpectedRootClaim":[103117],"VMStatus":[103273],"VMStatuses":[103351],"ValidStep":[103162]},"nodeType":"SourceUnit","src":"32:44792:164","nodes":[{"id":97684,"nodeType":"PragmaDirective","src":"32:23:164","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97686,"nodeType":"ImportDirective","src":"57:72:164","nodes":[],"absolutePath":"lib/solady/src/utils/FixedPointMathLib.sol","file":"@solady/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":62289,"symbolAliases":[{"foreign":{"id":97685,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"66:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97688,"nodeType":"ImportDirective","src":"131:71:164","nodes":[],"absolutePath":"src/dispute/interfaces/IDelayedWETH.sol","file":"src/dispute/interfaces/IDelayedWETH.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100240,"symbolAliases":[{"foreign":{"id":97687,"name":"IDelayedWETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100239,"src":"140:12:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97690,"nodeType":"ImportDirective","src":"203:71:164","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","file":"src/dispute/interfaces/IDisputeGame.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100328,"symbolAliases":[{"foreign":{"id":97689,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"212:12:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97692,"nodeType":"ImportDirective","src":"275:81:164","nodes":[],"absolutePath":"src/dispute/interfaces/IFaultDisputeGame.sol","file":"src/dispute/interfaces/IFaultDisputeGame.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100609,"symbolAliases":[{"foreign":{"id":97691,"name":"IFaultDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100608,"src":"284:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97694,"nodeType":"ImportDirective","src":"357:75:164","nodes":[],"absolutePath":"src/dispute/interfaces/IInitializable.sol","file":"src/dispute/interfaces/IInitializable.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100617,"symbolAliases":[{"foreign":{"id":97693,"name":"IInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100616,"src":"366:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97697,"nodeType":"ImportDirective","src":"433:86:164","nodes":[],"absolutePath":"src/dispute/interfaces/IBigStepper.sol","file":"src/dispute/interfaces/IBigStepper.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100172,"symbolAliases":[{"foreign":{"id":97695,"name":"IBigStepper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100171,"src":"442:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":97696,"name":"IPreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96782,"src":"455:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97699,"nodeType":"ImportDirective","src":"520:87:164","nodes":[],"absolutePath":"src/dispute/interfaces/IAnchorStateRegistry.sol","file":"src/dispute/interfaces/IAnchorStateRegistry.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":100147,"symbolAliases":[{"foreign":{"id":97698,"name":"IAnchorStateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100146,"src":"529:20:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97701,"nodeType":"ImportDirective","src":"609:48:164","nodes":[],"absolutePath":"lib/solady/src/utils/Clone.sol","file":"@solady/utils/Clone.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":60964,"symbolAliases":[{"foreign":{"id":97700,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60963,"src":"618:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97703,"nodeType":"ImportDirective","src":"658:48:164","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":97702,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"667:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97705,"nodeType":"ImportDirective","src":"707:52:164","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":97704,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"716:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97707,"nodeType":"ImportDirective","src":"760:54:164","nodes":[],"absolutePath":"src/dispute/lib/LibUDT.sol","file":"src/dispute/lib/LibUDT.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":101152,"symbolAliases":[{"foreign":{"id":97706,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101073,"src":"769:8:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97708,"nodeType":"ImportDirective","src":"816:40:164","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":103374,"symbolAliases":[],"unitAlias":""},{"id":97709,"nodeType":"ImportDirective","src":"857:41:164","nodes":[],"absolutePath":"src/libraries/DisputeErrors.sol","file":"src/libraries/DisputeErrors.sol","nameLocation":"-1:-1:-1","scope":99928,"sourceUnit":103196,"symbolAliases":[],"unitAlias":""},{"id":99927,"nodeType":"ContractDefinition","src":"996:43827:164","nodes":[{"id":97720,"nodeType":"VariableDeclaration","src":"1444:42:164","nodes":[],"constant":false,"documentation":{"id":97717,"nodeType":"StructuredDocumentation","src":"1273:166:164","text":"@notice The absolute prestate of the instruction trace. This is a constant that is defined\n by the program that is being used to execute the trace."},"mutability":"immutable","name":"ABSOLUTE_PRESTATE","nameLocation":"1469:17:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97719,"nodeType":"UserDefinedTypeName","pathNode":{"id":97718,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"1444:5:164"},"referencedDeclaration":103255,"src":"1444:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"id":97723,"nodeType":"VariableDeclaration","src":"1536:41:164","nodes":[],"constant":false,"documentation":{"id":97721,"nodeType":"StructuredDocumentation","src":"1493:38:164","text":"@notice The max depth of the game."},"mutability":"immutable","name":"MAX_GAME_DEPTH","nameLocation":"1563:14:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97722,"name":"uint256","nodeType":"ElementaryTypeName","src":"1536:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":97726,"nodeType":"VariableDeclaration","src":"1750:38:164","nodes":[],"constant":false,"documentation":{"id":97724,"nodeType":"StructuredDocumentation","src":"1584:161:164","text":"@notice The max depth of the output bisection portion of the position tree. Immediately beneath\n this depth, execution trace bisection begins."},"mutability":"immutable","name":"SPLIT_DEPTH","nameLocation":"1777:11:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97725,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":97730,"nodeType":"VariableDeclaration","src":"1911:46:164","nodes":[],"constant":false,"documentation":{"id":97727,"nodeType":"StructuredDocumentation","src":"1795:111:164","text":"@notice The maximum duration that may accumulate on a team's chess clock before they may no longer respond."},"mutability":"immutable","name":"MAX_CLOCK_DURATION","nameLocation":"1939:18:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":97729,"nodeType":"UserDefinedTypeName","pathNode":{"id":97728,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"1911:8:164"},"referencedDeclaration":103263,"src":"1911:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"},{"id":97734,"nodeType":"VariableDeclaration","src":"2065:33:164","nodes":[],"constant":false,"documentation":{"id":97731,"nodeType":"StructuredDocumentation","src":"1964:96:164","text":"@notice An onchain VM that performs single instruction steps on a fault proof program trace."},"mutability":"immutable","name":"VM","nameLocation":"2096:2:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"},"typeName":{"id":97733,"nodeType":"UserDefinedTypeName","pathNode":{"id":97732,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":100171,"src":"2065:11:164"},"referencedDeclaration":100171,"src":"2065:11:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"visibility":"internal"},{"id":97738,"nodeType":"VariableDeclaration","src":"2139:37:164","nodes":[],"constant":false,"documentation":{"id":97735,"nodeType":"StructuredDocumentation","src":"2105:29:164","text":"@notice The game type ID."},"mutability":"immutable","name":"GAME_TYPE","nameLocation":"2167:9:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97737,"nodeType":"UserDefinedTypeName","pathNode":{"id":97736,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"2139:8:164"},"referencedDeclaration":103271,"src":"2139:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"id":97742,"nodeType":"VariableDeclaration","src":"2230:36:164","nodes":[],"constant":false,"documentation":{"id":97739,"nodeType":"StructuredDocumentation","src":"2183:42:164","text":"@notice WETH contract for holding ETH."},"mutability":"immutable","name":"WETH","nameLocation":"2262:4:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"},"typeName":{"id":97741,"nodeType":"UserDefinedTypeName","pathNode":{"id":97740,"name":"IDelayedWETH","nodeType":"IdentifierPath","referencedDeclaration":100239,"src":"2230:12:164"},"referencedDeclaration":100239,"src":"2230:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"visibility":"internal"},{"id":97746,"nodeType":"VariableDeclaration","src":"2316:61:164","nodes":[],"constant":false,"documentation":{"id":97743,"nodeType":"StructuredDocumentation","src":"2273:38:164","text":"@notice The anchor state registry."},"mutability":"immutable","name":"ANCHOR_STATE_REGISTRY","nameLocation":"2356:21:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"},"typeName":{"id":97745,"nodeType":"UserDefinedTypeName","pathNode":{"id":97744,"name":"IAnchorStateRegistry","nodeType":"IdentifierPath","referencedDeclaration":100146,"src":"2316:20:164"},"referencedDeclaration":100146,"src":"2316:20:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"visibility":"internal"},{"id":97749,"nodeType":"VariableDeclaration","src":"2459:38:164","nodes":[],"constant":false,"documentation":{"id":97747,"nodeType":"StructuredDocumentation","src":"2384:70:164","text":"@notice The chain ID of the L2 network this contract argues about."},"mutability":"immutable","name":"L2_CHAIN_ID","nameLocation":"2486:11:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2459:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":97753,"nodeType":"VariableDeclaration","src":"2666:43:164","nodes":[],"constant":false,"documentation":{"id":97750,"nodeType":"StructuredDocumentation","src":"2504:157:164","text":"@notice The duration of the clock extension. Will be doubled if the grandchild is the root claim of an execution\n trace bisection subgame."},"mutability":"immutable","name":"CLOCK_EXTENSION","nameLocation":"2694:15:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":97752,"nodeType":"UserDefinedTypeName","pathNode":{"id":97751,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"2666:8:164"},"referencedDeclaration":103263,"src":"2666:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"},{"id":97761,"nodeType":"VariableDeclaration","src":"2788:59:164","nodes":[],"constant":true,"documentation":{"id":97754,"nodeType":"StructuredDocumentation","src":"2716:67:164","text":"@notice The global root claim's position is always at gindex 1."},"mutability":"constant","name":"ROOT_POSITION","nameLocation":"2815:13:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":97756,"nodeType":"UserDefinedTypeName","pathNode":{"id":97755,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"2788:8:164"},"referencedDeclaration":103269,"src":"2788:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"value":{"arguments":[{"hexValue":"31","id":97759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2845:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":97757,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"2831:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":97758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"2831:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":97760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2831:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"id":97765,"nodeType":"VariableDeclaration","src":"2918:41:164","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":97762,"nodeType":"StructuredDocumentation","src":"2854:59:164","text":"@notice Semantic version.\n @custom:semver 0.17.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2941:7:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97763,"name":"string","nodeType":"ElementaryTypeName","src":"2918:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"302e31372e30","id":97764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2951:8:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_512d9a572f9735444291a88a6ab37093045e89287be8ab073814769d70f29bc8","typeString":"literal_string \"0.17.0\""},"value":"0.17.0"},"visibility":"public"},{"id":97769,"nodeType":"VariableDeclaration","src":"3017:26:164","nodes":[],"baseFunctions":[100260],"constant":false,"documentation":{"id":97766,"nodeType":"StructuredDocumentation","src":"2966:46:164","text":"@notice The starting timestamp of the game"},"functionSelector":"cf09e0d0","mutability":"mutable","name":"createdAt","nameLocation":"3034:9:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97768,"nodeType":"UserDefinedTypeName","pathNode":{"id":97767,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"3017:9:164"},"referencedDeclaration":103261,"src":"3017:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"public"},{"id":97773,"nodeType":"VariableDeclaration","src":"3113:27:164","nodes":[],"baseFunctions":[100267],"constant":false,"documentation":{"id":97770,"nodeType":"StructuredDocumentation","src":"3050:58:164","text":"@notice The timestamp of the game's global resolution."},"functionSelector":"19effeb4","mutability":"mutable","name":"resolvedAt","nameLocation":"3130:10:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97772,"nodeType":"UserDefinedTypeName","pathNode":{"id":97771,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"3113:9:164"},"referencedDeclaration":103261,"src":"3113:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"public"},{"id":97777,"nodeType":"VariableDeclaration","src":"3180:24:164","nodes":[],"baseFunctions":[100274],"constant":false,"documentation":{"id":97774,"nodeType":"StructuredDocumentation","src":"3147:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"200d2ed2","mutability":"mutable","name":"status","nameLocation":"3198:6:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"typeName":{"id":97776,"nodeType":"UserDefinedTypeName","pathNode":{"id":97775,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":103277,"src":"3180:10:164"},"referencedDeclaration":103277,"src":"3180:10:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"visibility":"public"},{"id":97780,"nodeType":"VariableDeclaration","src":"3292:25:164","nodes":[],"constant":false,"documentation":{"id":97778,"nodeType":"StructuredDocumentation","src":"3211:76:164","text":"@notice Flag for the `initialize` function to prevent re-initialization."},"mutability":"mutable","name":"initialized","nameLocation":"3306:11:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":97779,"name":"bool","nodeType":"ElementaryTypeName","src":"3292:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":97785,"nodeType":"VariableDeclaration","src":"3405:28:164","nodes":[],"constant":false,"documentation":{"id":97781,"nodeType":"StructuredDocumentation","src":"3324:76:164","text":"@notice An append-only array of all claims made during the dispute game."},"functionSelector":"c6f0308c","mutability":"mutable","name":"claimData","nameLocation":"3424:9:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData[]"},"typeName":{"baseType":{"id":97783,"nodeType":"UserDefinedTypeName","pathNode":{"id":97782,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"3405:9:164"},"referencedDeclaration":100523,"src":"3405:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"id":97784,"nodeType":"ArrayTypeName","src":"3405:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData[]"}},"visibility":"public"},{"id":97790,"nodeType":"VariableDeclaration","src":"3500:41:164","nodes":[],"constant":false,"documentation":{"id":97786,"nodeType":"StructuredDocumentation","src":"3440:55:164","text":"@notice Credited balances for winning participants."},"functionSelector":"d5d44d80","mutability":"mutable","name":"credit","nameLocation":"3535:6:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":97789,"keyType":{"id":97787,"name":"address","nodeType":"ElementaryTypeName","src":"3508:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3500:27:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":97788,"name":"uint256","nodeType":"ElementaryTypeName","src":"3519:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":97796,"nodeType":"VariableDeclaration","src":"3629:40:164","nodes":[],"constant":false,"documentation":{"id":97791,"nodeType":"StructuredDocumentation","src":"3548:76:164","text":"@notice A mapping to allow for constant-time lookups of existing claims."},"functionSelector":"eff0f592","mutability":"mutable","name":"claims","nameLocation":"3663:6:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$","typeString":"mapping(ClaimHash => bool)"},"typeName":{"id":97795,"keyType":{"id":97793,"nodeType":"UserDefinedTypeName","pathNode":{"id":97792,"name":"ClaimHash","nodeType":"IdentifierPath","referencedDeclaration":103257,"src":"3637:9:164"},"referencedDeclaration":103257,"src":"3637:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"}},"nodeType":"Mapping","src":"3629:26:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$","typeString":"mapping(ClaimHash => bool)"},"valueType":{"id":97794,"name":"bool","nodeType":"ElementaryTypeName","src":"3650:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":97802,"nodeType":"VariableDeclaration","src":"3777:45:164","nodes":[],"constant":false,"documentation":{"id":97797,"nodeType":"StructuredDocumentation","src":"3676:96:164","text":"@notice A mapping of subgames rooted at a claim index to other claim indices in the subgame."},"functionSelector":"2ad69aeb","mutability":"mutable","name":"subgames","nameLocation":"3814:8:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(uint256 => uint256[])"},"typeName":{"id":97801,"keyType":{"id":97798,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3777:29:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(uint256 => uint256[])"},"valueType":{"baseType":{"id":97799,"name":"uint256","nodeType":"ElementaryTypeName","src":"3796:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97800,"nodeType":"ArrayTypeName","src":"3796:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":97807,"nodeType":"VariableDeclaration","src":"3912:48:164","nodes":[],"constant":false,"documentation":{"id":97803,"nodeType":"StructuredDocumentation","src":"3829:78:164","text":"@notice An interneal mapping of resolved subgames rooted at a claim index."},"functionSelector":"fe2bbeb2","mutability":"mutable","name":"resolvedSubgames","nameLocation":"3944:16:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":97806,"keyType":{"id":97804,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3912:24:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":97805,"name":"bool","nodeType":"ElementaryTypeName","src":"3931:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":97811,"nodeType":"VariableDeclaration","src":"4061:36:164","nodes":[],"baseFunctions":[100594],"constant":false,"documentation":{"id":97808,"nodeType":"StructuredDocumentation","src":"3967:89:164","text":"@notice The latest finalized output root, serving as the anchor for output bisection."},"functionSelector":"57da950e","mutability":"mutable","name":"startingOutputRoot","nameLocation":"4079:18:164","scope":99927,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot"},"typeName":{"id":97810,"nodeType":"UserDefinedTypeName","pathNode":{"id":97809,"name":"OutputRoot","nodeType":"IdentifierPath","referencedDeclaration":103283,"src":"4061:10:164"},"referencedDeclaration":103283,"src":"4061:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage_ptr","typeString":"struct OutputRoot"}},"visibility":"public"},{"id":97911,"nodeType":"FunctionDefinition","src":"4927:1230:164","nodes":[],"body":{"id":97910,"nodeType":"Block","src":"5268:889:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97842,"name":"_maxGameDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97820,"src":"5375:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":97846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97843,"name":"LibPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101018,"src":"5391:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPosition_$101018_$","typeString":"type(library LibPosition)"}},"id":97844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"MAX_POSITION_BITLEN","nodeType":"MemberAccess","referencedDeclaration":100809,"src":"5391:31:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":97845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5425:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5391:35:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5375:51:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97851,"nodeType":"IfStatement","src":"5371:82:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97848,"name":"MaxDepthTooLarge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103186,"src":"5435:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5435:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97850,"nodeType":"RevertStatement","src":"5428:25:164"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97852,"name":"_splitDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97822,"src":"5549:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":97853,"name":"_maxGameDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97820,"src":"5564:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5549:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97858,"nodeType":"IfStatement","src":"5545:60:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97855,"name":"InvalidSplitDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103180,"src":"5586:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5586:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97857,"nodeType":"RevertStatement","src":"5579:26:164"}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":97865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97859,"name":"_clockExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97825,"src":"5698:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":97860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"5698:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":97861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5698:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97862,"name":"_maxClockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97828,"src":"5722:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":97863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"5722:21:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":97864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5722:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5698:47:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97869,"nodeType":"IfStatement","src":"5694:83:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97866,"name":"InvalidClockExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103183,"src":"5754:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5754:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97868,"nodeType":"RevertStatement","src":"5747:30:164"}},{"expression":{"id":97872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97870,"name":"GAME_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97738,"src":"5788:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97871,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97815,"src":"5800:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"src":"5788:21:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":97873,"nodeType":"ExpressionStatement","src":"5788:21:164"},{"expression":{"id":97876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97874,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97720,"src":"5819:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97875,"name":"_absolutePrestate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97818,"src":"5839:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"5819:37:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":97877,"nodeType":"ExpressionStatement","src":"5819:37:164"},{"expression":{"id":97880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97878,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"5866:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97879,"name":"_maxGameDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97820,"src":"5883:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5866:30:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97881,"nodeType":"ExpressionStatement","src":"5866:30:164"},{"expression":{"id":97884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97882,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"5906:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97883,"name":"_splitDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97822,"src":"5920:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5906:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97885,"nodeType":"ExpressionStatement","src":"5906:25:164"},{"expression":{"id":97888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97886,"name":"CLOCK_EXTENSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97753,"src":"5941:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97887,"name":"_clockExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97825,"src":"5959:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"5941:33:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":97889,"nodeType":"ExpressionStatement","src":"5941:33:164"},{"expression":{"id":97892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97890,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"5984:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97891,"name":"_maxClockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97828,"src":"6005:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"5984:38:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":97893,"nodeType":"ExpressionStatement","src":"5984:38:164"},{"expression":{"id":97896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97894,"name":"VM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97734,"src":"6032:2:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97895,"name":"_vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97831,"src":"6037:3:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"src":"6032:8:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"id":97897,"nodeType":"ExpressionStatement","src":"6032:8:164"},{"expression":{"id":97900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97898,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"6050:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97899,"name":"_weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97834,"src":"6057:5:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"src":"6050:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":97901,"nodeType":"ExpressionStatement","src":"6050:12:164"},{"expression":{"id":97904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97902,"name":"ANCHOR_STATE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97746,"src":"6072:21:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97903,"name":"_anchorStateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97837,"src":"6096:20:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"src":"6072:44:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"id":97905,"nodeType":"ExpressionStatement","src":"6072:44:164"},{"expression":{"id":97908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97906,"name":"L2_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97749,"src":"6126:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97907,"name":"_l2ChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97839,"src":"6140:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6126:24:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97909,"nodeType":"ExpressionStatement","src":"6126:24:164"}]},"documentation":{"id":97812,"nodeType":"StructuredDocumentation","src":"4104:818:164","text":"@param _gameType The type ID of the game.\n @param _absolutePrestate The absolute prestate of the instruction trace.\n @param _maxGameDepth The maximum depth of bisection.\n @param _splitDepth The final depth of the output bisection portion of the game.\n @param _clockExtension The clock extension to perform when the remaining duration is less than the extension.\n @param _maxClockDuration The maximum amount of time that may accumulate on a team's chess clock.\n @param _vm An onchain VM that performs single instruction steps on an FPP trace.\n @param _weth WETH contract for holding ETH.\n @param _anchorStateRegistry The contract that stores the anchor state for each game type.\n @param _l2ChainId Chain ID of the L2 network this contract argues about."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":97840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97815,"mutability":"mutable","name":"_gameType","nameLocation":"4957:9:164","nodeType":"VariableDeclaration","scope":97911,"src":"4948:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97814,"nodeType":"UserDefinedTypeName","pathNode":{"id":97813,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"4948:8:164"},"referencedDeclaration":103271,"src":"4948:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97818,"mutability":"mutable","name":"_absolutePrestate","nameLocation":"4982:17:164","nodeType":"VariableDeclaration","scope":97911,"src":"4976:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97817,"nodeType":"UserDefinedTypeName","pathNode":{"id":97816,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"4976:5:164"},"referencedDeclaration":103255,"src":"4976:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97820,"mutability":"mutable","name":"_maxGameDepth","nameLocation":"5017:13:164","nodeType":"VariableDeclaration","scope":97911,"src":"5009:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97819,"name":"uint256","nodeType":"ElementaryTypeName","src":"5009:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97822,"mutability":"mutable","name":"_splitDepth","nameLocation":"5048:11:164","nodeType":"VariableDeclaration","scope":97911,"src":"5040:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97821,"name":"uint256","nodeType":"ElementaryTypeName","src":"5040:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97825,"mutability":"mutable","name":"_clockExtension","nameLocation":"5078:15:164","nodeType":"VariableDeclaration","scope":97911,"src":"5069:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":97824,"nodeType":"UserDefinedTypeName","pathNode":{"id":97823,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"5069:8:164"},"referencedDeclaration":103263,"src":"5069:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":97828,"mutability":"mutable","name":"_maxClockDuration","nameLocation":"5112:17:164","nodeType":"VariableDeclaration","scope":97911,"src":"5103:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":97827,"nodeType":"UserDefinedTypeName","pathNode":{"id":97826,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"5103:8:164"},"referencedDeclaration":103263,"src":"5103:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":97831,"mutability":"mutable","name":"_vm","nameLocation":"5151:3:164","nodeType":"VariableDeclaration","scope":97911,"src":"5139:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"},"typeName":{"id":97830,"nodeType":"UserDefinedTypeName","pathNode":{"id":97829,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":100171,"src":"5139:11:164"},"referencedDeclaration":100171,"src":"5139:11:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"visibility":"internal"},{"constant":false,"id":97834,"mutability":"mutable","name":"_weth","nameLocation":"5177:5:164","nodeType":"VariableDeclaration","scope":97911,"src":"5164:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"},"typeName":{"id":97833,"nodeType":"UserDefinedTypeName","pathNode":{"id":97832,"name":"IDelayedWETH","nodeType":"IdentifierPath","referencedDeclaration":100239,"src":"5164:12:164"},"referencedDeclaration":100239,"src":"5164:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"visibility":"internal"},{"constant":false,"id":97837,"mutability":"mutable","name":"_anchorStateRegistry","nameLocation":"5213:20:164","nodeType":"VariableDeclaration","scope":97911,"src":"5192:41:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"},"typeName":{"id":97836,"nodeType":"UserDefinedTypeName","pathNode":{"id":97835,"name":"IAnchorStateRegistry","nodeType":"IdentifierPath","referencedDeclaration":100146,"src":"5192:20:164"},"referencedDeclaration":100146,"src":"5192:20:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"visibility":"internal"},{"constant":false,"id":97839,"mutability":"mutable","name":"_l2ChainId","nameLocation":"5251:10:164","nodeType":"VariableDeclaration","scope":97911,"src":"5243:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97838,"name":"uint256","nodeType":"ElementaryTypeName","src":"5243:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4938:329:164"},"returnParameters":{"id":97841,"nodeType":"ParameterList","parameters":[],"src":"5268:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":98025,"nodeType":"FunctionDefinition","src":"6198:2903:164","nodes":[],"body":{"id":98024,"nodeType":"Block","src":"6243:2858:164","nodes":[],"statements":[{"condition":{"id":97915,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97780,"src":"6888:11:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97919,"nodeType":"IfStatement","src":"6884:44:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97916,"name":"AlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103120,"src":"6908:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6908:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97918,"nodeType":"RevertStatement","src":"6901:27:164"}},{"assignments":[97922,97924],"declarations":[{"constant":false,"id":97922,"mutability":"mutable","name":"root","nameLocation":"6985:4:164","nodeType":"VariableDeclaration","scope":98024,"src":"6980:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97921,"nodeType":"UserDefinedTypeName","pathNode":{"id":97920,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"6980:4:164"},"referencedDeclaration":103253,"src":"6980:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"},{"constant":false,"id":97924,"mutability":"mutable","name":"rootBlockNumber","nameLocation":"6999:15:164","nodeType":"VariableDeclaration","scope":98024,"src":"6991:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97923,"name":"uint256","nodeType":"ElementaryTypeName","src":"6991:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":97929,"initialValue":{"arguments":[{"id":97927,"name":"GAME_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97738,"src":"7048:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"expression":{"id":97925,"name":"ANCHOR_STATE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97746,"src":"7018:21:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"id":97926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"anchors","nodeType":"MemberAccess","referencedDeclaration":100134,"src":"7018:29:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_GameType_$103271_$returns$_t_userDefinedValueType$_Hash_$103253_$_t_uint256_$","typeString":"function (GameType) view external returns (Hash,uint256)"}},"id":97928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7018:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Hash_$103253_$_t_uint256_$","typeString":"tuple(Hash,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6979:79:164"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":97937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97930,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97922,"src":"7159:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":97931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"7159:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":97932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7159:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":97935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7173:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":97933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7173:7:164","typeDescriptions":{}}},"id":97936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7173:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7159:24:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97941,"nodeType":"IfStatement","src":"7155:57:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97938,"name":"AnchorRootNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103192,"src":"7192:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7192:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97940,"nodeType":"RevertStatement","src":"7185:27:164"}},{"expression":{"id":97947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97942,"name":"startingOutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97811,"src":"7264:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":97944,"name":"rootBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97924,"src":"7313:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97945,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97922,"src":"7336:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}],"id":97943,"name":"OutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103283,"src":"7285:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutputRoot_$103283_storage_ptr_$","typeString":"type(struct OutputRoot storage pointer)"}},"id":97946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["l2BlockNumber","root"],"nodeType":"FunctionCall","src":"7285:58:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_memory_ptr","typeString":"struct OutputRoot memory"}},"src":"7264:79:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"id":97948,"nodeType":"ExpressionStatement","src":"7264:79:164"},{"AST":{"nodeType":"YulBlock","src":"7933:219:164","statements":[{"body":{"nodeType":"YulBlock","src":"7983:159:164","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8076:4:164","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"8082:10:164","type":"","value":"0x9824bdab"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8069:6:164"},"nodeType":"YulFunctionCall","src":"8069:24:164"},"nodeType":"YulExpressionStatement","src":"8069:24:164"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8117:4:164","type":"","value":"0x1C"},{"kind":"number","nodeType":"YulLiteral","src":"8123:4:164","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8110:6:164"},"nodeType":"YulFunctionCall","src":"8110:18:164"},"nodeType":"YulExpressionStatement","src":"8110:18:164"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"7960:12:164"},"nodeType":"YulFunctionCall","src":"7960:14:164"},{"kind":"number","nodeType":"YulLiteral","src":"7976:4:164","type":"","value":"0x7A"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7957:2:164"},"nodeType":"YulFunctionCall","src":"7957:24:164"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7950:6:164"},"nodeType":"YulFunctionCall","src":"7950:32:164"},"nodeType":"YulIf","src":"7947:195:164"}]},"evmVersion":"london","externalReferences":[],"id":97949,"nodeType":"InlineAssembly","src":"7924:228:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":97950,"name":"l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98690,"src":"8320:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":97951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8320:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":97952,"name":"rootBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97924,"src":"8339:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8320:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97959,"nodeType":"IfStatement","src":"8316:79:164","trueBody":{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":97955,"name":"rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99027,"src":"8383:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure returns (Claim)"}},"id":97956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8383:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}],"id":97954,"name":"UnexpectedRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103117,"src":"8363:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$","typeString":"function (Claim) pure"}},"id":97957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8363:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97958,"nodeType":"RevertStatement","src":"8356:39:164"}},{"expression":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":97966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8510:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":97965,"name":"uint32","nodeType":"ElementaryTypeName","src":"8510:6:164","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":97964,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8505:4:164","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":97967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8505:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":97968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"8505:16:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"hexValue":"30","id":97971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8560:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8552:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97969,"name":"address","nodeType":"ElementaryTypeName","src":"8552:7:164","typeDescriptions":{}}},"id":97972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8552:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":97973,"name":"gameCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99010,"src":"8590:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_address_$","typeString":"function () pure returns (address)"}},"id":97974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8590:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":97977,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8635:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"8635:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8627:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":97975,"name":"uint128","nodeType":"ElementaryTypeName","src":"8627:7:164","typeDescriptions":{}}},"id":97979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8627:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[],"expression":{"argumentTypes":[],"id":97980,"name":"rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99027,"src":"8670:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure returns (Claim)"}},"id":97981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8670:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97982,"name":"ROOT_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97761,"src":"8709:13:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"arguments":[{"arguments":[{"hexValue":"30","id":97987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":97985,"name":"Duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103263,"src":"8761:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Duration_$103263_$","typeString":"type(Duration)"}},"id":97986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"8761:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (uint64) pure returns (Duration)"}},"id":97988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8761:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},{"arguments":[{"arguments":[{"expression":{"id":97993,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8801:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":97994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8801:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8794:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":97991,"name":"uint64","nodeType":"ElementaryTypeName","src":"8794:6:164","typeDescriptions":{}}},"id":97995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8794:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":97989,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"8779:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":97990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"8779:14:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":97996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8779:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}],"expression":{"id":97983,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101073,"src":"8747:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibClock_$101073_$","typeString":"type(library LibClock)"}},"id":97984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","referencedDeclaration":101037,"src":"8747:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_userDefinedValueType$_Clock_$103267_$","typeString":"function (Duration,Timestamp) pure returns (Clock)"}},"id":97997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8747:72:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}],"id":97963,"name":"ClaimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100523,"src":"8464:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"type(struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":97998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["parentIndex","counteredBy","claimant","bond","claim","position","clock"],"nodeType":"FunctionCall","src":"8464:370:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData memory"}],"expression":{"id":97960,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"8436:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":97962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"8436:14:164","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$_t_struct$_ClaimData_$100523_storage_$returns$__$bound_to$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$","typeString":"function (struct IFaultDisputeGame.ClaimData storage ref[] storage pointer,struct IFaultDisputeGame.ClaimData storage ref)"}},"id":97999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8436:408:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98000,"nodeType":"ExpressionStatement","src":"8436:408:164"},{"expression":{"id":98003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98001,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97780,"src":"8895:11:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":98002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8909:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8895:18:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98004,"nodeType":"ExpressionStatement","src":"8895:18:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":98005,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"8953:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":98007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":100691,"src":"8953:12:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":98010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":98008,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8974:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"8974:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"8953:32:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":98011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8953:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98012,"nodeType":"ExpressionStatement","src":"8953:34:164"},{"expression":{"id":98022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98013,"name":"createdAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97769,"src":"9043:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":98018,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9077:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":98019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9077:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9070:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":98016,"name":"uint64","nodeType":"ElementaryTypeName","src":"9070:6:164","typeDescriptions":{}}},"id":98020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9070:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":98014,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"9055:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":98015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"9055:14:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":98021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9055:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"src":"9043:51:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"id":98023,"nodeType":"ExpressionStatement","src":"9043:51:164"}]},"baseFunctions":[100615],"documentation":{"id":97912,"nodeType":"StructuredDocumentation","src":"6163:30:164","text":"@inheritdoc IInitializable"},"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"6207:10:164","parameters":{"id":97913,"nodeType":"ParameterList","parameters":[],"src":"6217:2:164"},"returnParameters":{"id":97914,"nodeType":"ParameterList","parameters":[],"src":"6243:0:164"},"scope":99927,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":98227,"nodeType":"FunctionDefinition","src":"9353:4442:164","nodes":[],"body":{"id":98226,"nodeType":"Block","src":"9527:4268:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":98040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98037,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"9626:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98038,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"9636:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"9636:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"9626:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98044,"nodeType":"IfStatement","src":"9622:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98041,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"9667:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9667:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98043,"nodeType":"RevertStatement","src":"9660:26:164"}},{"assignments":[98047],"declarations":[{"constant":false,"id":98047,"mutability":"mutable","name":"parent","nameLocation":"9795:6:164","nodeType":"VariableDeclaration","scope":98226,"src":"9777:24:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":98046,"nodeType":"UserDefinedTypeName","pathNode":{"id":98045,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"9777:9:164"},"referencedDeclaration":100523,"src":"9777:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":98051,"initialValue":{"baseExpression":{"id":98048,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"9804:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98050,"indexExpression":{"id":98049,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98028,"src":"9814:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9804:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9777:49:164"},{"assignments":[98054],"declarations":[{"constant":false,"id":98054,"mutability":"mutable","name":"parentPos","nameLocation":"9898:9:164","nodeType":"VariableDeclaration","scope":98226,"src":"9889:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98053,"nodeType":"UserDefinedTypeName","pathNode":{"id":98052,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"9889:8:164"},"referencedDeclaration":103269,"src":"9889:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98057,"initialValue":{"expression":{"id":98055,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"9910:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"9910:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"9889:36:164"},{"assignments":[98060],"declarations":[{"constant":false,"id":98060,"mutability":"mutable","name":"stepPos","nameLocation":"9991:7:164","nodeType":"VariableDeclaration","scope":98226,"src":"9982:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98059,"nodeType":"UserDefinedTypeName","pathNode":{"id":98058,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"9982:8:164"},"referencedDeclaration":103269,"src":"9982:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98065,"initialValue":{"arguments":[{"id":98063,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98030,"src":"10016:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":98061,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98054,"src":"10001:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"move","nodeType":"MemberAccess","referencedDeclaration":101006,"src":"10001:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position,bool) pure returns (Position)"}},"id":98064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10001:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"9982:44:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98066,"name":"stepPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98060,"src":"10142:7:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"10142:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":98068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10142:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98069,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"10161:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":98070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10178:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10161:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10142:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98076,"nodeType":"IfStatement","src":"10138:65:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98073,"name":"InvalidParent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103156,"src":"10188:13:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10188:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98075,"nodeType":"RevertStatement","src":"10181:22:164"}},{"assignments":[98079],"declarations":[{"constant":false,"id":98079,"mutability":"mutable","name":"preStateClaim","nameLocation":"10285:13:164","nodeType":"VariableDeclaration","scope":98226,"src":"10279:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98078,"nodeType":"UserDefinedTypeName","pathNode":{"id":98077,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"10279:5:164"},"referencedDeclaration":103255,"src":"10279:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"id":98080,"nodeType":"VariableDeclarationStatement","src":"10279:19:164"},{"assignments":[98083],"declarations":[{"constant":false,"id":98083,"mutability":"mutable","name":"postState","nameLocation":"10326:9:164","nodeType":"VariableDeclaration","scope":98226,"src":"10308:27:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":98082,"nodeType":"UserDefinedTypeName","pathNode":{"id":98081,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"10308:9:164"},"referencedDeclaration":100523,"src":"10308:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":98084,"nodeType":"VariableDeclarationStatement","src":"10308:27:164"},{"condition":{"id":98085,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98030,"src":"10349:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":98145,"nodeType":"Block","src":"11374:314:164","statements":[{"expression":{"id":98127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98124,"name":"preStateClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98079,"src":"11542:13:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98125,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"11558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"11558:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"11542:28:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98128,"nodeType":"ExpressionStatement","src":"11542:28:164"},{"expression":{"id":98143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98129,"name":"postState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98083,"src":"11584:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":98137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98133,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98054,"src":"11629:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"11629:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":98135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11629:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":98136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11647:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11629:19:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":98131,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"11615:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":98132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"11615:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":98138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11615:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"expression":{"id":98139,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"11651:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"11651:18:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"66616c7365","id":98141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11671:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":98130,"name":"_findTraceAncestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99638,"src":"11596:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":98142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11596:81:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"src":"11584:93:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98144,"nodeType":"ExpressionStatement","src":"11584:93:164"}]},"id":98146,"nodeType":"IfStatement","src":"10345:1343:164","trueBody":{"id":98123,"nodeType":"Block","src":"10360:1008:164","statements":[{"expression":{"id":98117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98086,"name":"preStateClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98079,"src":"11031:13:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98087,"name":"stepPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98060,"src":"11048:7:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"indexAtDepth","nodeType":"MemberAccess","referencedDeclaration":100850,"src":"11048:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":98089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11048:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":98090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11074:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98091,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"11080:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":98092,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"11097:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11080:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":98094,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11079:30:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11074:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":98096,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11073:37:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11048:62:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":98098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11047:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":98099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11115:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:69:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":98109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98105,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98054,"src":"11204:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"11204:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":98107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11204:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":98108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11222:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11204:19:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":98103,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"11190:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":98104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"11190:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":98110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11190:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"expression":{"id":98111,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"11226:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"11226:18:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"66616c7365","id":98113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11246:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":98102,"name":"_findTraceAncestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99638,"src":"11171:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":98114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11171:81:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"11171:87:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11047:211:164","trueExpression":{"id":98101,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97720,"src":"11135:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"11031:227:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98118,"nodeType":"ExpressionStatement","src":"11031:227:164"},{"expression":{"id":98121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98119,"name":"postState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98083,"src":"11339:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":98120,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"11351:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"src":"11339:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98122,"nodeType":"ExpressionStatement","src":"11339:18:164"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":98157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":98151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":98148,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98032,"src":"12041:10:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":98147,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12031:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":98149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12031:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":98150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12056:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12031:26:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":98156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98152,"name":"preStateClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98079,"src":"12061:13:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"12061:17:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":98154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12061:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":98155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12084:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12061:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12031:54:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98161,"nodeType":"IfStatement","src":"12027:84:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98158,"name":"InvalidPrestate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103159,"src":"12094:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12094:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98160,"nodeType":"RevertStatement","src":"12087:24:164"}},{"assignments":[98164],"declarations":[{"constant":false,"id":98164,"mutability":"mutable","name":"uuid","nameLocation":"12187:4:164","nodeType":"VariableDeclaration","scope":98226,"src":"12182:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":98163,"nodeType":"UserDefinedTypeName","pathNode":{"id":98162,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"12182:4:164"},"referencedDeclaration":103253,"src":"12182:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":98168,"initialValue":{"arguments":[{"id":98166,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98028,"src":"12212:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98165,"name":"_findLocalContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99875,"src":"12194:17:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (uint256) view returns (Hash)"}},"id":98167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12194:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"12182:42:164"},{"assignments":[98170],"declarations":[{"constant":false,"id":98170,"mutability":"mutable","name":"validStep","nameLocation":"13202:9:164","nodeType":"VariableDeclaration","scope":98226,"src":"13197:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98169,"name":"bool","nodeType":"ElementaryTypeName","src":"13197:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":98184,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":98183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":98173,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98032,"src":"13222:10:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":98174,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98034,"src":"13234:6:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98175,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98164,"src":"13242:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"13242:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13242:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":98171,"name":"VM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97734,"src":"13214:2:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"id":98172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"step","nodeType":"MemberAccess","referencedDeclaration":100163,"src":"13214:7:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes memory,bytes memory,bytes32) external returns (bytes32)"}},"id":98178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13214:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":98179,"name":"postState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98083,"src":"13257:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"13257:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"13257:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":98182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13257:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13214:64:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13197:81:164"},{"assignments":[98186],"declarations":[{"constant":false,"id":98186,"mutability":"mutable","name":"parentPostAgree","nameLocation":"13293:15:164","nodeType":"VariableDeclaration","scope":98226,"src":"13288:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98185,"name":"bool","nodeType":"ElementaryTypeName","src":"13288:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":98200,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":98199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":98197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":98194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98187,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98054,"src":"13312:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"13312:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":98189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13312:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":98190,"name":"postState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98083,"src":"13332:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"13332:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"13332:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":98193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13332:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13312:46:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":98195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13311:48:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":98196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13362:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13311:52:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":98198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13367:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13311:57:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13288:80:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":98203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98201,"name":"parentPostAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98186,"src":"13382:15:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":98202,"name":"validStep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98170,"src":"13401:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13382:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98207,"nodeType":"IfStatement","src":"13378:52:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98204,"name":"ValidStep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103162,"src":"13419:9:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13419:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98206,"nodeType":"RevertStatement","src":"13412:18:164"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":98214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":98208,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"13524:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"13524:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":98212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13554:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13546:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98210,"name":"address","nodeType":"ElementaryTypeName","src":"13546:7:164","typeDescriptions":{}}},"id":98213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13546:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13524:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98218,"nodeType":"IfStatement","src":"13520:60:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98215,"name":"DuplicateStep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103189,"src":"13565:13:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13565:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98217,"nodeType":"RevertStatement","src":"13558:22:164"}},{"expression":{"id":98224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":98219,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98047,"src":"13757:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"13757:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98222,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13778:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13778:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13757:31:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98225,"nodeType":"ExpressionStatement","src":"13757:31:164"}]},"baseFunctions":[100563],"documentation":{"id":98026,"nodeType":"StructuredDocumentation","src":"9315:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"d8cc1a3c","implemented":true,"kind":"function","modifiers":[],"name":"step","nameLocation":"9362:4:164","parameters":{"id":98035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98028,"mutability":"mutable","name":"_claimIndex","nameLocation":"9384:11:164","nodeType":"VariableDeclaration","scope":98227,"src":"9376:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98027,"name":"uint256","nodeType":"ElementaryTypeName","src":"9376:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98030,"mutability":"mutable","name":"_isAttack","nameLocation":"9410:9:164","nodeType":"VariableDeclaration","scope":98227,"src":"9405:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98029,"name":"bool","nodeType":"ElementaryTypeName","src":"9405:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":98032,"mutability":"mutable","name":"_stateData","nameLocation":"9444:10:164","nodeType":"VariableDeclaration","scope":98227,"src":"9429:25:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":98031,"name":"bytes","nodeType":"ElementaryTypeName","src":"9429:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":98034,"mutability":"mutable","name":"_proof","nameLocation":"9479:6:164","nodeType":"VariableDeclaration","scope":98227,"src":"9464:21:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":98033,"name":"bytes","nodeType":"ElementaryTypeName","src":"9464:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9366:125:164"},"returnParameters":{"id":98036,"nodeType":"ParameterList","parameters":[],"src":"9527:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":98470,"nodeType":"FunctionDefinition","src":"14106:5200:164","nodes":[],"body":{"id":98469,"nodeType":"Block","src":"14198:5108:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":98241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98238,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"14297:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98239,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"14307:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"14307:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"14297:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98245,"nodeType":"IfStatement","src":"14293:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98242,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"14338:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14338:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98244,"nodeType":"RevertStatement","src":"14331:26:164"}},{"assignments":[98248],"declarations":[{"constant":false,"id":98248,"mutability":"mutable","name":"parent","nameLocation":"14465:6:164","nodeType":"VariableDeclaration","scope":98469,"src":"14448:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":98247,"nodeType":"UserDefinedTypeName","pathNode":{"id":98246,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"14448:9:164"},"referencedDeclaration":100523,"src":"14448:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":98252,"initialValue":{"baseExpression":{"id":98249,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"14474:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98251,"indexExpression":{"id":98250,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"14484:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14474:26:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14448:52:164"},{"assignments":[98255],"declarations":[{"constant":false,"id":98255,"mutability":"mutable","name":"parentPos","nameLocation":"14768:9:164","nodeType":"VariableDeclaration","scope":98469,"src":"14759:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98254,"nodeType":"UserDefinedTypeName","pathNode":{"id":98253,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"14759:8:164"},"referencedDeclaration":103269,"src":"14759:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98258,"initialValue":{"expression":{"id":98256,"name":"parent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98248,"src":"14780:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData memory"}},"id":98257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"14780:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"14759:36:164"},{"assignments":[98261],"declarations":[{"constant":false,"id":98261,"mutability":"mutable","name":"nextPosition","nameLocation":"14814:12:164","nodeType":"VariableDeclaration","scope":98469,"src":"14805:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98260,"nodeType":"UserDefinedTypeName","pathNode":{"id":98259,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"14805:8:164"},"referencedDeclaration":103269,"src":"14805:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98266,"initialValue":{"arguments":[{"id":98264,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98235,"src":"14844:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":98262,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98255,"src":"14829:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"move","nodeType":"MemberAccess","referencedDeclaration":101006,"src":"14829:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position,bool) pure returns (Position)"}},"id":98265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14829:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"14805:49:164"},{"assignments":[98268],"declarations":[{"constant":false,"id":98268,"mutability":"mutable","name":"nextPositionDepth","nameLocation":"14872:17:164","nodeType":"VariableDeclaration","scope":98469,"src":"14864:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98267,"name":"uint256","nodeType":"ElementaryTypeName","src":"14864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":98272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98269,"name":"nextPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98261,"src":"14892:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"14892:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":98271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14892:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"14864:48:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":98285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":98281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98273,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"15259:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":98274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15259:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98276,"name":"nextPositionDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98268,"src":"15283:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98277,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"15304:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":98278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15318:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15304:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15283:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15259:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":98282,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15258:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":98284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15324:10:164","subExpression":{"id":98283,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98235,"src":"15325:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15258:76:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98290,"nodeType":"IfStatement","src":"15254:137:164","trueBody":{"id":98289,"nodeType":"Block","src":"15336:55:164","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98286,"name":"CannotDefendRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103135,"src":"15357:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15357:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98288,"nodeType":"RevertStatement","src":"15350:30:164"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98291,"name":"nextPositionDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98268,"src":"15732:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":98292,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"15752:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15732:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98297,"nodeType":"IfStatement","src":"15728:66:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98294,"name":"GameDepthExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103153,"src":"15775:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15775:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98296,"nodeType":"RevertStatement","src":"15768:26:164"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98298,"name":"nextPositionDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98268,"src":"16001:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98299,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"16022:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":98300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16036:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16022:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16001:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98311,"nodeType":"IfStatement","src":"15997:138:164","trueBody":{"id":98310,"nodeType":"Block","src":"16039:96:164","statements":[{"expression":{"arguments":[{"id":98304,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98233,"src":"16078:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":98305,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"16086:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":98306,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98255,"src":"16103:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":98307,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98235,"src":"16114:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":98303,"name":"_verifyExecBisectionRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99587,"src":"16053:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Claim_$103255_$_t_uint256_$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$__$","typeString":"function (Claim,uint256,Position,bool) view"}},"id":98308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16053:71:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98309,"nodeType":"ExpressionStatement","src":"16053:71:164"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":98313,"name":"nextPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98261,"src":"16241:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}],"id":98312,"name":"getRequiredBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99215,"src":"16225:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint256_$","typeString":"function (Position) view returns (uint256)"}},"id":98314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16225:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98315,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16258:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"16258:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16225:42:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98321,"nodeType":"IfStatement","src":"16221:76:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98318,"name":"IncorrectBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103123,"src":"16276:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16276:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98320,"nodeType":"RevertStatement","src":"16269:28:164"}},{"assignments":[98324],"declarations":[{"constant":false,"id":98324,"mutability":"mutable","name":"nextDuration","nameLocation":"16539:12:164","nodeType":"VariableDeclaration","scope":98469,"src":"16530:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":98323,"nodeType":"UserDefinedTypeName","pathNode":{"id":98322,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"16530:8:164"},"referencedDeclaration":103263,"src":"16530:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"}],"id":98328,"initialValue":{"arguments":[{"id":98326,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"16576:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98325,"name":"getChallengerDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99348,"src":"16554:21:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (uint256) view returns (Duration)"}},"id":98327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16554:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"VariableDeclarationStatement","src":"16530:62:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98329,"name":"nextDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98324,"src":"16742:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"16742:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16742:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98332,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"16764:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"16764:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16764:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16742:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98339,"nodeType":"IfStatement","src":"16738:78:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98336,"name":"ClockTimeExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103147,"src":"16797:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16797:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98338,"nodeType":"RevertStatement","src":"16790:26:164"}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98340,"name":"nextDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98324,"src":"17477:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17477:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17477:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98343,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"17498:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17498:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17498:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98346,"name":"CLOCK_EXTENSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97753,"src":"17525:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17525:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17525:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17498:48:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17477:69:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98380,"nodeType":"IfStatement","src":"17473:424:164","trueBody":{"id":98379,"nodeType":"Block","src":"17548:349:164","statements":[{"assignments":[98352],"declarations":[{"constant":false,"id":98352,"mutability":"mutable","name":"extensionPeriod","nameLocation":"17678:15:164","nodeType":"VariableDeclaration","scope":98379,"src":"17671:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":98351,"name":"uint64","nodeType":"ElementaryTypeName","src":"17671:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":98367,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98353,"name":"nextPositionDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98268,"src":"17712:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98354,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"17733:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":98355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17747:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17733:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17712:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98363,"name":"CLOCK_EXTENSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97753,"src":"17779:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17779:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17779:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":98366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"17712:88:164","trueExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98358,"name":"CLOCK_EXTENSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97753,"src":"17751:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17751:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17751:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":98361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17775:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17751:25:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"17671:129:164"},{"expression":{"id":98377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98368,"name":"nextDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98324,"src":"17814:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98371,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"17843:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"17843:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17843:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":98374,"name":"extensionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98352,"src":"17870:15:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17843:42:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":98369,"name":"Duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103263,"src":"17829:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Duration_$103263_$","typeString":"type(Duration)"}},"id":98370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"17829:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (uint64) pure returns (Duration)"}},"id":98376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17829:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"17814:72:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98378,"nodeType":"ExpressionStatement","src":"17814:72:164"}]}},{"assignments":[98383],"declarations":[{"constant":false,"id":98383,"mutability":"mutable","name":"nextClock","nameLocation":"18004:9:164","nodeType":"VariableDeclaration","scope":98469,"src":"17998:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"},"typeName":{"id":98382,"nodeType":"UserDefinedTypeName","pathNode":{"id":98381,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":103267,"src":"17998:5:164"},"referencedDeclaration":103267,"src":"17998:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"visibility":"internal"}],"id":98396,"initialValue":{"arguments":[{"id":98386,"name":"nextDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98324,"src":"18030:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},{"arguments":[{"arguments":[{"expression":{"id":98391,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18066:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":98392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18066:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18059:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":98389,"name":"uint64","nodeType":"ElementaryTypeName","src":"18059:6:164","typeDescriptions":{}}},"id":98393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18059:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":98387,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"18044:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":98388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"18044:14:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":98394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18044:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}],"expression":{"id":98384,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101073,"src":"18016:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibClock_$101073_$","typeString":"type(library LibClock)"}},"id":98385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","referencedDeclaration":101037,"src":"18016:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_userDefinedValueType$_Clock_$103267_$","typeString":"function (Duration,Timestamp) pure returns (Clock)"}},"id":98395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18016:68:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"nodeType":"VariableDeclarationStatement","src":"17998:86:164"},{"assignments":[98399],"declarations":[{"constant":false,"id":98399,"mutability":"mutable","name":"claimHash","nameLocation":"18378:9:164","nodeType":"VariableDeclaration","scope":98469,"src":"18368:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"},"typeName":{"id":98398,"nodeType":"UserDefinedTypeName","pathNode":{"id":98397,"name":"ClaimHash","nodeType":"IdentifierPath","referencedDeclaration":103257,"src":"18368:9:164"},"referencedDeclaration":103257,"src":"18368:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"}},"visibility":"internal"}],"id":98405,"initialValue":{"arguments":[{"id":98402,"name":"nextPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98261,"src":"18410:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":98403,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"18424:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98400,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98233,"src":"18390:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashClaimPos","nodeType":"MemberAccess","referencedDeclaration":100799,"src":"18390:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_userDefinedValueType$_ClaimHash_$103257_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim,Position,uint256) pure returns (ClaimHash)"}},"id":98404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18390:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"}},"nodeType":"VariableDeclarationStatement","src":"18368:72:164"},{"condition":{"baseExpression":{"id":98406,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97796,"src":"18454:6:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$","typeString":"mapping(ClaimHash => bool)"}},"id":98408,"indexExpression":{"id":98407,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98399,"src":"18461:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18454:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98412,"nodeType":"IfStatement","src":"18450:50:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98409,"name":"ClaimAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103138,"src":"18480:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18480:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98411,"nodeType":"RevertStatement","src":"18473:27:164"}},{"expression":{"id":98417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":98413,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97796,"src":"18510:6:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$","typeString":"mapping(ClaimHash => bool)"}},"id":98415,"indexExpression":{"id":98414,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98399,"src":"18517:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$103257","typeString":"ClaimHash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18510:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":98416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18530:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18510:24:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98418,"nodeType":"ExpressionStatement","src":"18510:24:164"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":98425,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"18654:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18647:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":98423,"name":"uint32","nodeType":"ElementaryTypeName","src":"18647:6:164","typeDescriptions":{}}},"id":98426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18647:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"hexValue":"30","id":98429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18770:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18762:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98427,"name":"address","nodeType":"ElementaryTypeName","src":"18762:7:164","typeDescriptions":{}}},"id":98430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18762:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":98431,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18800:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18800:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":98435,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18842:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"18842:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18834:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":98433,"name":"uint128","nodeType":"ElementaryTypeName","src":"18834:7:164","typeDescriptions":{}}},"id":98437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18834:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":98438,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98233,"src":"18877:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":98439,"name":"nextPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98261,"src":"18911:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":98440,"name":"nextClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98383,"src":"18948:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}],"id":98422,"name":"ClaimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100523,"src":"18606:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"type(struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":98441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["parentIndex","counteredBy","claimant","bond","claim","position","clock"],"nodeType":"FunctionCall","src":"18606:366:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimData_$100523_memory_ptr","typeString":"struct IFaultDisputeGame.ClaimData memory"}],"expression":{"id":98419,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"18578:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"18578:14:164","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$_t_struct$_ClaimData_$100523_storage_$returns$__$bound_to$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$","typeString":"function (struct IFaultDisputeGame.ClaimData storage ref[] storage pointer,struct IFaultDisputeGame.ClaimData storage ref)"}},"id":98442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18578:404:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98443,"nodeType":"ExpressionStatement","src":"18578:404:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":98448,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"19082:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19082:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":98450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19101:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19082:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":98444,"name":"subgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97802,"src":"19051:8:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(uint256 => uint256[] storage ref)"}},"id":98446,"indexExpression":{"id":98445,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"19060:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19051:25:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":98447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"19051:30:164","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":98452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19051:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98453,"nodeType":"ExpressionStatement","src":"19051:52:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":98454,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"19143:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":98456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":100691,"src":"19143:12:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":98459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":98457,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19164:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"19164:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"19143:32:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":98460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19143:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98461,"nodeType":"ExpressionStatement","src":"19143:34:164"},{"eventCall":{"arguments":[{"id":98463,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98230,"src":"19263:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":98464,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98233,"src":"19280:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"expression":{"id":98465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19288:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19288:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_address","typeString":"address"}],"id":98462,"name":"Move","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100533,"src":"19258:4:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_address_$returns$__$","typeString":"function (uint256,Claim,address)"}},"id":98467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19258:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98468,"nodeType":"EmitStatement","src":"19253:46:164"}]},"documentation":{"id":98228,"nodeType":"StructuredDocumentation","src":"13801:300:164","text":"@notice Generic move function, used for both `attack` and `defend` moves.\n @param _challengeIndex The index of the claim being moved against.\n @param _claim The claim at the next logical position in the game.\n @param _isAttack Whether or not the move is an attack or defense."},"functionSelector":"632247ea","implemented":true,"kind":"function","modifiers":[],"name":"move","nameLocation":"14115:4:164","parameters":{"id":98236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98230,"mutability":"mutable","name":"_challengeIndex","nameLocation":"14128:15:164","nodeType":"VariableDeclaration","scope":98470,"src":"14120:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98229,"name":"uint256","nodeType":"ElementaryTypeName","src":"14120:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98233,"mutability":"mutable","name":"_claim","nameLocation":"14151:6:164","nodeType":"VariableDeclaration","scope":98470,"src":"14145:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98232,"nodeType":"UserDefinedTypeName","pathNode":{"id":98231,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"14145:5:164"},"referencedDeclaration":103255,"src":"14145:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":98235,"mutability":"mutable","name":"_isAttack","nameLocation":"14164:9:164","nodeType":"VariableDeclaration","scope":98470,"src":"14159:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98234,"name":"bool","nodeType":"ElementaryTypeName","src":"14159:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14119:55:164"},"returnParameters":{"id":98237,"nodeType":"ParameterList","parameters":[],"src":"14198:0:164"},"scope":99927,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":98486,"nodeType":"FunctionDefinition","src":"19350:118:164","nodes":[],"body":{"id":98485,"nodeType":"Block","src":"19419:49:164","nodes":[],"statements":[{"expression":{"arguments":[{"id":98480,"name":"_parentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98473,"src":"19434:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":98481,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98476,"src":"19448:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"hexValue":"74727565","id":98482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19456:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":98479,"name":"move","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98470,"src":"19429:4:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_bool_$returns$__$","typeString":"function (uint256,Claim,bool)"}},"id":98483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19429:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98484,"nodeType":"ExpressionStatement","src":"19429:32:164"}]},"baseFunctions":[100542],"documentation":{"id":98471,"nodeType":"StructuredDocumentation","src":"19312:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"c55cd0c7","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"19359:6:164","parameters":{"id":98477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98473,"mutability":"mutable","name":"_parentIndex","nameLocation":"19374:12:164","nodeType":"VariableDeclaration","scope":98486,"src":"19366:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98472,"name":"uint256","nodeType":"ElementaryTypeName","src":"19366:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98476,"mutability":"mutable","name":"_claim","nameLocation":"19394:6:164","nodeType":"VariableDeclaration","scope":98486,"src":"19388:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98475,"nodeType":"UserDefinedTypeName","pathNode":{"id":98474,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"19388:5:164"},"referencedDeclaration":103255,"src":"19388:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"src":"19365:36:164"},"returnParameters":{"id":98478,"nodeType":"ParameterList","parameters":[],"src":"19419:0:164"},"scope":99927,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":98502,"nodeType":"FunctionDefinition","src":"19512:119:164","nodes":[],"body":{"id":98501,"nodeType":"Block","src":"19581:50:164","nodes":[],"statements":[{"expression":{"arguments":[{"id":98496,"name":"_parentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98489,"src":"19596:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":98497,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98492,"src":"19610:6:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"hexValue":"66616c7365","id":98498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19618:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":98495,"name":"move","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98470,"src":"19591:4:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_bool_$returns$__$","typeString":"function (uint256,Claim,bool)"}},"id":98499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19591:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98500,"nodeType":"ExpressionStatement","src":"19591:33:164"}]},"baseFunctions":[100551],"documentation":{"id":98487,"nodeType":"StructuredDocumentation","src":"19474:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"35fef567","implemented":true,"kind":"function","modifiers":[],"name":"defend","nameLocation":"19521:6:164","parameters":{"id":98493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98489,"mutability":"mutable","name":"_parentIndex","nameLocation":"19536:12:164","nodeType":"VariableDeclaration","scope":98502,"src":"19528:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98488,"name":"uint256","nodeType":"ElementaryTypeName","src":"19528:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98492,"mutability":"mutable","name":"_claim","nameLocation":"19556:6:164","nodeType":"VariableDeclaration","scope":98502,"src":"19550:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98491,"nodeType":"UserDefinedTypeName","pathNode":{"id":98490,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"19550:5:164"},"referencedDeclaration":103255,"src":"19550:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"src":"19527:36:164"},"returnParameters":{"id":98494,"nodeType":"ParameterList","parameters":[],"src":"19581:0:164"},"scope":99927,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":98677,"nodeType":"FunctionDefinition","src":"19675:2011:164","nodes":[],"body":{"id":98676,"nodeType":"Block","src":"19765:1921:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":98515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98512,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"19868:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98513,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"19878:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"19878:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"19868:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98519,"nodeType":"IfStatement","src":"19864:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98516,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"19909:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19909:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98518,"nodeType":"RevertStatement","src":"19902:26:164"}},{"assignments":[98522,98525,98528,98531],"declarations":[{"constant":false,"id":98522,"mutability":"mutable","name":"starting","nameLocation":"19946:8:164","nodeType":"VariableDeclaration","scope":98676,"src":"19940:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98521,"nodeType":"UserDefinedTypeName","pathNode":{"id":98520,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"19940:5:164"},"referencedDeclaration":103255,"src":"19940:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":98525,"mutability":"mutable","name":"startingPos","nameLocation":"19965:11:164","nodeType":"VariableDeclaration","scope":98676,"src":"19956:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98524,"nodeType":"UserDefinedTypeName","pathNode":{"id":98523,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"19956:8:164"},"referencedDeclaration":103269,"src":"19956:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":98528,"mutability":"mutable","name":"disputed","nameLocation":"19984:8:164","nodeType":"VariableDeclaration","scope":98676,"src":"19978:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":98527,"nodeType":"UserDefinedTypeName","pathNode":{"id":98526,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"19978:5:164"},"referencedDeclaration":103255,"src":"19978:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":98531,"mutability":"mutable","name":"disputedPos","nameLocation":"20003:11:164","nodeType":"VariableDeclaration","scope":98676,"src":"19994:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98530,"nodeType":"UserDefinedTypeName","pathNode":{"id":98529,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"19994:8:164"},"referencedDeclaration":103269,"src":"19994:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98535,"initialValue":{"arguments":[{"id":98533,"name":"_execLeafIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98507,"src":"20062:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98532,"name":"_findStartingAndDisputedOutputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99840,"src":"20030:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint256) view returns (Claim,Position,Claim,Position)"}},"id":98534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20030:45:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position,Claim,Position)"}},"nodeType":"VariableDeclarationStatement","src":"19939:136:164"},{"assignments":[98538],"declarations":[{"constant":false,"id":98538,"mutability":"mutable","name":"uuid","nameLocation":"20090:4:164","nodeType":"VariableDeclaration","scope":98676,"src":"20085:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":98537,"nodeType":"UserDefinedTypeName","pathNode":{"id":98536,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"20085:4:164"},"referencedDeclaration":103253,"src":"20085:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":98545,"initialValue":{"arguments":[{"id":98540,"name":"starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98522,"src":"20118:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":98541,"name":"startingPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98525,"src":"20128:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":98542,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98528,"src":"20141:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":98543,"name":"disputedPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98531,"src":"20151:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}],"id":98539,"name":"_computeLocalContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99926,"src":"20097:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Claim,Position,Claim,Position) pure returns (Hash)"}},"id":98544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20097:66:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"20085:78:164"},{"assignments":[98548],"declarations":[{"constant":false,"id":98548,"mutability":"mutable","name":"oracle","nameLocation":"20190:6:164","nodeType":"VariableDeclaration","scope":98676,"src":"20174:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"},"typeName":{"id":98547,"nodeType":"UserDefinedTypeName","pathNode":{"id":98546,"name":"IPreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":96782,"src":"20174:15:164"},"referencedDeclaration":96782,"src":"20174:15:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"visibility":"internal"}],"id":98552,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98549,"name":"VM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97734,"src":"20199:2:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"id":98550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"oracle","nodeType":"MemberAccess","referencedDeclaration":100170,"src":"20199:9:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPreimageOracle_$96782_$","typeString":"function () view external returns (contract IPreimageOracle)"}},"id":98551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20199:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"nodeType":"VariableDeclarationStatement","src":"20174:36:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98553,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20224:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":98554,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103373,"src":"20234:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$103373_$","typeString":"type(library LocalPreimageKey)"}},"id":98555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_HEAD_HASH","nodeType":"MemberAccess","referencedDeclaration":103356,"src":"20234:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20224:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98573,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20410:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":98574,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103373,"src":"20420:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$103373_$","typeString":"type(library LocalPreimageKey)"}},"id":98575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"STARTING_OUTPUT_ROOT","nodeType":"MemberAccess","referencedDeclaration":103360,"src":"20420:37:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20410:47:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98592,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20624:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":98593,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103373,"src":"20634:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$103373_$","typeString":"type(library LocalPreimageKey)"}},"id":98594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DISPUTED_OUTPUT_ROOT","nodeType":"MemberAccess","referencedDeclaration":103364,"src":"20634:37:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20624:47:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98611,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20837:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":98612,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103373,"src":"20847:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$103373_$","typeString":"type(library LocalPreimageKey)"}},"id":98613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DISPUTED_L2_BLOCK_NUMBER","nodeType":"MemberAccess","referencedDeclaration":103368,"src":"20847:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20837:51:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98645,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"21380:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":98646,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103373,"src":"21390:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$103373_$","typeString":"type(library LocalPreimageKey)"}},"id":98647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CHAIN_ID","nodeType":"MemberAccess","referencedDeclaration":103372,"src":"21390:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21380:35:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":98670,"nodeType":"Block","src":"21629:51:164","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98667,"name":"InvalidLocalIdent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103168,"src":"21650:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21650:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98669,"nodeType":"RevertStatement","src":"21643:26:164"}]},"id":98671,"nodeType":"IfStatement","src":"21376:304:164","trueBody":{"id":98666,"nodeType":"Block","src":"21417:206:164","statements":[{"expression":{"arguments":[{"id":98652,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"21547:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98653,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98538,"src":"21555:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"21555:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21555:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98658,"name":"L2_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97749,"src":"21575:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"30784330","id":98659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21590:4:164","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xC0"},"src":"21575:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21567:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":98656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21567:7:164","typeDescriptions":{}}},"id":98661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21567:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"38","id":98662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21597:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":98663,"name":"_partOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98509,"src":"21600:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98649,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98548,"src":"21526:6:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"id":98651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"loadLocalData","nodeType":"MemberAccess","referencedDeclaration":96741,"src":"21526:20:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)"}},"id":98664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21526:86:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":98665,"nodeType":"ExpressionStatement","src":"21526:86:164"}]}},"id":98672,"nodeType":"IfStatement","src":"20833:847:164","trueBody":{"id":98644,"nodeType":"Block","src":"20890:480:164","statements":[{"assignments":[98616],"declarations":[{"constant":false,"id":98616,"mutability":"mutable","name":"l2Number","nameLocation":"21176:8:164","nodeType":"VariableDeclaration","scope":98644,"src":"21168:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98615,"name":"uint256","nodeType":"ElementaryTypeName","src":"21168:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":98626,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":98617,"name":"startingOutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97811,"src":"21187:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"id":98618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2BlockNumber","nodeType":"MemberAccess","referencedDeclaration":103282,"src":"21187:32:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":98621,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"21245:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98619,"name":"disputedPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98531,"src":"21222:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"traceIndex","nodeType":"MemberAccess","referencedDeclaration":100925,"src":"21222:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_uint256_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position,uint256) pure returns (uint256)"}},"id":98622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21222:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21187:70:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":98624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21260:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21187:74:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21168:93:164"},{"expression":{"arguments":[{"id":98630,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"21297:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98631,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98538,"src":"21305:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"21305:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21305:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98636,"name":"l2Number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98616,"src":"21325:8:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"30784330","id":98637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21337:4:164","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xC0"},"src":"21325:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21317:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":98634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21317:7:164","typeDescriptions":{}}},"id":98639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21317:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"38","id":98640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21344:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":98641,"name":"_partOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98509,"src":"21347:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98627,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98548,"src":"21276:6:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"id":98629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"loadLocalData","nodeType":"MemberAccess","referencedDeclaration":96741,"src":"21276:20:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)"}},"id":98642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21276:83:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":98643,"nodeType":"ExpressionStatement","src":"21276:83:164"}]}},"id":98673,"nodeType":"IfStatement","src":"20620:1060:164","trueBody":{"id":98610,"nodeType":"Block","src":"20673:154:164","statements":[{"expression":{"arguments":[{"id":98599,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20764:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98600,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98538,"src":"20772:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"20772:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20772:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98603,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98528,"src":"20784:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"20784:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":98605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20784:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":98606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20800:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":98607,"name":"_partOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98509,"src":"20804:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98596,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98548,"src":"20743:6:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"id":98598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"loadLocalData","nodeType":"MemberAccess","referencedDeclaration":96741,"src":"20743:20:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)"}},"id":98608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20743:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":98609,"nodeType":"ExpressionStatement","src":"20743:73:164"}]}},"id":98674,"nodeType":"IfStatement","src":"20406:1274:164","trueBody":{"id":98591,"nodeType":"Block","src":"20459:155:164","statements":[{"expression":{"arguments":[{"id":98580,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20551:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98581,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98538,"src":"20559:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"20559:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20559:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98584,"name":"starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98522,"src":"20571:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":98585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"20571:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":98586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20571:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":98587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20587:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":98588,"name":"_partOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98509,"src":"20591:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98577,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98548,"src":"20530:6:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"id":98579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"loadLocalData","nodeType":"MemberAccess","referencedDeclaration":96741,"src":"20530:20:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)"}},"id":98589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20530:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":98590,"nodeType":"ExpressionStatement","src":"20530:73:164"}]}},"id":98675,"nodeType":"IfStatement","src":"20220:1460:164","trueBody":{"id":98572,"nodeType":"Block","src":"20265:135:164","statements":[{"expression":{"arguments":[{"id":98560,"name":"_ident","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98505,"src":"20337:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98561,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98538,"src":"20345:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"20345:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20345:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":98564,"name":"l1Head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99044,"src":"20357:6:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function () pure returns (Hash)"}},"id":98565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20357:8:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"20357:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":98567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20357:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":98568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20373:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":98569,"name":"_partOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98509,"src":"20377:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":98557,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98548,"src":"20316:6:164","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$96782","typeString":"contract IPreimageOracle"}},"id":98559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"loadLocalData","nodeType":"MemberAccess","referencedDeclaration":96741,"src":"20316:20:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)"}},"id":98570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20316:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":98571,"nodeType":"ExpressionStatement","src":"20316:73:164"}]}}]},"baseFunctions":[100573],"documentation":{"id":98503,"nodeType":"StructuredDocumentation","src":"19637:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"f8f43ff6","implemented":true,"kind":"function","modifiers":[],"name":"addLocalData","nameLocation":"19684:12:164","parameters":{"id":98510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98505,"mutability":"mutable","name":"_ident","nameLocation":"19705:6:164","nodeType":"VariableDeclaration","scope":98677,"src":"19697:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98504,"name":"uint256","nodeType":"ElementaryTypeName","src":"19697:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98507,"mutability":"mutable","name":"_execLeafIdx","nameLocation":"19721:12:164","nodeType":"VariableDeclaration","scope":98677,"src":"19713:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98506,"name":"uint256","nodeType":"ElementaryTypeName","src":"19713:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":98509,"mutability":"mutable","name":"_partOffset","nameLocation":"19743:11:164","nodeType":"VariableDeclaration","scope":98677,"src":"19735:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98508,"name":"uint256","nodeType":"ElementaryTypeName","src":"19735:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19696:59:164"},"returnParameters":{"id":98511,"nodeType":"ParameterList","parameters":[],"src":"19765:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":98690,"nodeType":"FunctionDefinition","src":"21730:124:164","nodes":[],"body":{"id":98689,"nodeType":"Block","src":"21800:54:164","nodes":[],"statements":[{"expression":{"id":98687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98683,"name":"l2BlockNumber_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98681,"src":"21810:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30783534","id":98685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21842:4:164","typeDescriptions":{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},"value":"0x54"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"}],"id":98684,"name":"_getArgUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60489,"src":"21827:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":98686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21827:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21810:37:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":98688,"nodeType":"ExpressionStatement","src":"21810:37:164"}]},"baseFunctions":[100585],"documentation":{"id":98678,"nodeType":"StructuredDocumentation","src":"21692:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"8b85902b","implemented":true,"kind":"function","modifiers":[],"name":"l2BlockNumber","nameLocation":"21739:13:164","parameters":{"id":98679,"nodeType":"ParameterList","parameters":[],"src":"21752:2:164"},"returnParameters":{"id":98682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98681,"mutability":"mutable","name":"l2BlockNumber_","nameLocation":"21784:14:164","nodeType":"VariableDeclaration","scope":98690,"src":"21776:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98680,"name":"uint256","nodeType":"ElementaryTypeName","src":"21776:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21775:24:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":98702,"nodeType":"FunctionDefinition","src":"21898:156:164","nodes":[],"body":{"id":98701,"nodeType":"Block","src":"21982:72:164","nodes":[],"statements":[{"expression":{"id":98699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98696,"name":"startingBlockNumber_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98694,"src":"21992:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98697,"name":"startingOutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97811,"src":"22015:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"id":98698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2BlockNumber","nodeType":"MemberAccess","referencedDeclaration":103282,"src":"22015:32:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21992:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":98700,"nodeType":"ExpressionStatement","src":"21992:55:164"}]},"baseFunctions":[100600],"documentation":{"id":98691,"nodeType":"StructuredDocumentation","src":"21860:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"70872aa5","implemented":true,"kind":"function","modifiers":[],"name":"startingBlockNumber","nameLocation":"21907:19:164","parameters":{"id":98692,"nodeType":"ParameterList","parameters":[],"src":"21926:2:164"},"returnParameters":{"id":98695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98694,"mutability":"mutable","name":"startingBlockNumber_","nameLocation":"21960:20:164","nodeType":"VariableDeclaration","scope":98702,"src":"21952:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98693,"name":"uint256","nodeType":"ElementaryTypeName","src":"21952:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21951:30:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":98715,"nodeType":"FunctionDefinition","src":"22098:135:164","nodes":[],"body":{"id":98714,"nodeType":"Block","src":"22173:60:164","nodes":[],"statements":[{"expression":{"id":98712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98709,"name":"startingRootHash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98707,"src":"22183:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98710,"name":"startingOutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97811,"src":"22203:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"id":98711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"root","nodeType":"MemberAccess","referencedDeclaration":103280,"src":"22203:23:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"22183:43:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":98713,"nodeType":"ExpressionStatement","src":"22183:43:164"}]},"baseFunctions":[100607],"documentation":{"id":98703,"nodeType":"StructuredDocumentation","src":"22060:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"25fc2ace","implemented":true,"kind":"function","modifiers":[],"name":"startingRootHash","nameLocation":"22107:16:164","parameters":{"id":98704,"nodeType":"ParameterList","parameters":[],"src":"22123:2:164"},"returnParameters":{"id":98708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98707,"mutability":"mutable","name":"startingRootHash_","nameLocation":"22154:17:164","nodeType":"VariableDeclaration","scope":98715,"src":"22149:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":98706,"nodeType":"UserDefinedTypeName","pathNode":{"id":98705,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"22149:4:164"},"referencedDeclaration":103253,"src":"22149:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"22148:24:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":98778,"nodeType":"FunctionDefinition","src":"22480:905:164","nodes":[],"body":{"id":98777,"nodeType":"Block","src":"22537:848:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":98725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98722,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"22639:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98723,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"22649:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"22649:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"22639:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98729,"nodeType":"IfStatement","src":"22635:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98726,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"22680:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22680:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98728,"nodeType":"RevertStatement","src":"22673:26:164"}},{"condition":{"id":98733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22812:20:164","subExpression":{"baseExpression":{"id":98730,"name":"resolvedSubgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97807,"src":"22813:16:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":98732,"indexExpression":{"hexValue":"30","id":98731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22830:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22813:19:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98737,"nodeType":"IfStatement","src":"22808:55:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98734,"name":"OutOfOrderResolution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103171,"src":"22841:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22841:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98736,"nodeType":"RevertStatement","src":"22834:29:164"}},{"expression":{"id":98753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98738,"name":"status_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98720,"src":"22943:7:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":98747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":98739,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"22953:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98741,"indexExpression":{"hexValue":"30","id":98740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22963:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22953:12:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"id":98742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"22953:24:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":98745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22989:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22981:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98743,"name":"address","nodeType":"ElementaryTypeName","src":"22981:7:164","typeDescriptions":{}}},"id":98746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22981:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22953:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":98750,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"23021:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHALLENGER_WINS","nodeType":"MemberAccess","referencedDeclaration":103275,"src":"23021:26:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"id":98752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22953:94:164","trueExpression":{"expression":{"id":98748,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"22994:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DEFENDER_WINS","nodeType":"MemberAccess","referencedDeclaration":103276,"src":"22994:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"22943:104:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"id":98754,"nodeType":"ExpressionStatement","src":"22943:104:164"},{"expression":{"id":98764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98755,"name":"resolvedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97773,"src":"23057:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":98760,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23092:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":98761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23092:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23085:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":98758,"name":"uint64","nodeType":"ElementaryTypeName","src":"23085:6:164","typeDescriptions":{}}},"id":98762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23085:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":98756,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"23070:9:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":98757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"23070:14:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":98763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23070:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"src":"23057:52:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"id":98765,"nodeType":"ExpressionStatement","src":"23057:52:164"},{"eventCall":{"arguments":[{"id":98769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98767,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"23239:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":98768,"name":"status_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98720,"src":"23248:7:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"23239:16:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}],"id":98766,"name":"Resolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100253,"src":"23230:8:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GameStatus_$103277_$returns$__$","typeString":"function (enum GameStatus)"}},"id":98770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23230:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98771,"nodeType":"EmitStatement","src":"23225:31:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98772,"name":"ANCHOR_STATE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97746,"src":"23334:21:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"id":98774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tryUpdateAnchorState","nodeType":"MemberAccess","referencedDeclaration":100145,"src":"23334:42:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":98775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23334:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98776,"nodeType":"ExpressionStatement","src":"23334:44:164"}]},"baseFunctions":[100314],"documentation":{"id":98716,"nodeType":"StructuredDocumentation","src":"22447:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"2810e1d6","implemented":true,"kind":"function","modifiers":[],"name":"resolve","nameLocation":"22489:7:164","parameters":{"id":98717,"nodeType":"ParameterList","parameters":[],"src":"22496:2:164"},"returnParameters":{"id":98721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98720,"mutability":"mutable","name":"status_","nameLocation":"22528:7:164","nodeType":"VariableDeclaration","scope":98778,"src":"22517:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"typeName":{"id":98719,"nodeType":"UserDefinedTypeName","pathNode":{"id":98718,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":103277,"src":"22517:10:164"},"referencedDeclaration":103277,"src":"22517:10:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"22516:20:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":98984,"nodeType":"FunctionDefinition","src":"23429:3867:164","nodes":[],"body":{"id":98983,"nodeType":"Block","src":"23481:3815:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":98787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98784,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"23583:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":98785,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"23593:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":98786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"23593:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"23583:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98791,"nodeType":"IfStatement","src":"23579:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98788,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"23624:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23624:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98790,"nodeType":"RevertStatement","src":"23617:26:164"}},{"assignments":[98794],"declarations":[{"constant":false,"id":98794,"mutability":"mutable","name":"subgameRootClaim","nameLocation":"23672:16:164","nodeType":"VariableDeclaration","scope":98983,"src":"23654:34:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":98793,"nodeType":"UserDefinedTypeName","pathNode":{"id":98792,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"23654:9:164"},"referencedDeclaration":100523,"src":"23654:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":98798,"initialValue":{"baseExpression":{"id":98795,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"23691:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98797,"indexExpression":{"id":98796,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"23701:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23691:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23654:59:164"},{"assignments":[98801],"declarations":[{"constant":false,"id":98801,"mutability":"mutable","name":"challengeClockDuration","nameLocation":"23732:22:164","nodeType":"VariableDeclaration","scope":98983,"src":"23723:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":98800,"nodeType":"UserDefinedTypeName","pathNode":{"id":98799,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"23723:8:164"},"referencedDeclaration":103263,"src":"23723:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"}],"id":98805,"initialValue":{"arguments":[{"id":98803,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"23779:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":98802,"name":"getChallengerDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99348,"src":"23757:21:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (uint256) view returns (Duration)"}},"id":98804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23757:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"VariableDeclarationStatement","src":"23723:68:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":98812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98806,"name":"challengeClockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98801,"src":"24071:22:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"24071:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24071:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98809,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"24102:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":98810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"24102:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":98811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24102:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24071:55:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98816,"nodeType":"IfStatement","src":"24067:85:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98813,"name":"ClockNotExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103150,"src":"24135:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24135:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98815,"nodeType":"RevertStatement","src":"24128:24:164"}},{"condition":{"baseExpression":{"id":98817,"name":"resolvedSubgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97807,"src":"24221:16:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":98819,"indexExpression":{"id":98818,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"24238:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24221:29:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98823,"nodeType":"IfStatement","src":"24217:64:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98820,"name":"ClaimAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103174,"src":"24259:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24259:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98822,"nodeType":"RevertStatement","src":"24252:29:164"}},{"assignments":[98828],"declarations":[{"constant":false,"id":98828,"mutability":"mutable","name":"challengeIndices","nameLocation":"24310:16:164","nodeType":"VariableDeclaration","scope":98983,"src":"24292:34:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":98826,"name":"uint256","nodeType":"ElementaryTypeName","src":"24292:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":98827,"nodeType":"ArrayTypeName","src":"24292:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":98832,"initialValue":{"baseExpression":{"id":98829,"name":"subgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97802,"src":"24329:8:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(uint256 => uint256[] storage ref)"}},"id":98831,"indexExpression":{"id":98830,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"24338:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24329:21:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24292:58:164"},{"assignments":[98834],"declarations":[{"constant":false,"id":98834,"mutability":"mutable","name":"challengeIndicesLen","nameLocation":"24368:19:164","nodeType":"VariableDeclaration","scope":98983,"src":"24360:27:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98833,"name":"uint256","nodeType":"ElementaryTypeName","src":"24360:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":98837,"initialValue":{"expression":{"id":98835,"name":"challengeIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98828,"src":"24390:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":98836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"24390:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24360:53:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":98844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98838,"name":"challengeIndicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98834,"src":"24576:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":98839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24599:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24576:24:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98841,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"24604:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":98842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24619:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24604:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24576:44:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98876,"nodeType":"IfStatement","src":"24572:805:164","trueBody":{"id":98875,"nodeType":"Block","src":"24622:755:164","statements":[{"assignments":[98846],"declarations":[{"constant":false,"id":98846,"mutability":"mutable","name":"counteredBy","nameLocation":"25095:11:164","nodeType":"VariableDeclaration","scope":98875,"src":"25087:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":98845,"name":"address","nodeType":"ElementaryTypeName","src":"25087:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":98849,"initialValue":{"expression":{"id":98847,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"25109:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"25109:28:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25087:50:164"},{"assignments":[98851],"declarations":[{"constant":false,"id":98851,"mutability":"mutable","name":"recipient","nameLocation":"25159:9:164","nodeType":"VariableDeclaration","scope":98875,"src":"25151:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":98850,"name":"address","nodeType":"ElementaryTypeName","src":"25151:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":98862,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":98857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98852,"name":"counteredBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98846,"src":"25171:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":98855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25194:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25186:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98853,"name":"address","nodeType":"ElementaryTypeName","src":"25186:7:164","typeDescriptions":{}}},"id":98856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25186:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25171:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":98860,"name":"counteredBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98846,"src":"25227:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"25171:67:164","trueExpression":{"expression":{"id":98858,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"25199:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimant","nodeType":"MemberAccess","referencedDeclaration":100511,"src":"25199:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25151:87:164"},{"expression":{"arguments":[{"id":98864,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98851,"src":"25268:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":98865,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"25279:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}],"id":98863,"name":"_distributeBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99493,"src":"25252:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_ClaimData_$100523_storage_ptr_$returns$__$","typeString":"function (address,struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":98866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25252:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98867,"nodeType":"ExpressionStatement","src":"25252:44:164"},{"expression":{"id":98872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":98868,"name":"resolvedSubgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97807,"src":"25310:16:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":98870,"indexExpression":{"id":98869,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"25327:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25310:29:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":98871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"25342:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"25310:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98873,"nodeType":"ExpressionStatement","src":"25310:36:164"},{"functionReturnParameters":98783,"id":98874,"nodeType":"Return","src":"25360:7:164"}]}},{"assignments":[98878],"declarations":[{"constant":false,"id":98878,"mutability":"mutable","name":"countered","nameLocation":"25453:9:164","nodeType":"VariableDeclaration","scope":98983,"src":"25445:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":98877,"name":"address","nodeType":"ElementaryTypeName","src":"25445:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":98883,"initialValue":{"arguments":[{"hexValue":"30","id":98881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25473:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25465:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98879,"name":"address","nodeType":"ElementaryTypeName","src":"25465:7:164","typeDescriptions":{}}},"id":98882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25465:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25445:30:164"},{"assignments":[98886],"declarations":[{"constant":false,"id":98886,"mutability":"mutable","name":"leftmostCounter","nameLocation":"25494:15:164","nodeType":"VariableDeclaration","scope":98983,"src":"25485:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":98885,"nodeType":"UserDefinedTypeName","pathNode":{"id":98884,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"25485:8:164"},"referencedDeclaration":103269,"src":"25485:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":98895,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":98891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25531:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":98890,"name":"uint128","nodeType":"ElementaryTypeName","src":"25531:7:164","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":98889,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"25526:4:164","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":98892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25526:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":98893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"25526:17:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":98887,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"25512:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":98888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"25512:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":98894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25512:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"25485:59:164"},{"body":{"id":98955,"nodeType":"Block","src":"25604:1079:164","statements":[{"assignments":[98907],"declarations":[{"constant":false,"id":98907,"mutability":"mutable","name":"challengeIndex","nameLocation":"25626:14:164","nodeType":"VariableDeclaration","scope":98955,"src":"25618:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98906,"name":"uint256","nodeType":"ElementaryTypeName","src":"25618:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":98911,"initialValue":{"baseExpression":{"id":98908,"name":"challengeIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98828,"src":"25643:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":98910,"indexExpression":{"id":98909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98897,"src":"25660:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25643:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25618:44:164"},{"condition":{"id":98915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"25763:33:164","subExpression":{"baseExpression":{"id":98912,"name":"resolvedSubgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97807,"src":"25764:16:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":98914,"indexExpression":{"id":98913,"name":"challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98907,"src":"25781:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25764:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98919,"nodeType":"IfStatement","src":"25759:68:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":98916,"name":"OutOfOrderResolution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103171,"src":"25805:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":98917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25805:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98918,"nodeType":"RevertStatement","src":"25798:29:164"}},{"assignments":[98922],"declarations":[{"constant":false,"id":98922,"mutability":"mutable","name":"claim","nameLocation":"25860:5:164","nodeType":"VariableDeclaration","scope":98955,"src":"25842:23:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":98921,"nodeType":"UserDefinedTypeName","pathNode":{"id":98920,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"25842:9:164"},"referencedDeclaration":100523,"src":"25842:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":98926,"initialValue":{"baseExpression":{"id":98923,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"25868:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":98925,"indexExpression":{"id":98924,"name":"challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98907,"src":"25878:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25868:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25842:51:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":98942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":98933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":98927,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98922,"src":"26483:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"26483:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":98931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26512:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26504:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98929,"name":"address","nodeType":"ElementaryTypeName","src":"26504:7:164","typeDescriptions":{}}},"id":98932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26504:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26483:31:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":98941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":98934,"name":"leftmostCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98886,"src":"26518:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"26518:19:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":98936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26518:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":98937,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98922,"src":"26542:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"26542:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"26542:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":98940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26542:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"26518:44:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26483:79:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98954,"nodeType":"IfStatement","src":"26479:194:164","trueBody":{"id":98953,"nodeType":"Block","src":"26564:109:164","statements":[{"expression":{"id":98946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98943,"name":"countered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98878,"src":"26582:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98944,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98922,"src":"26594:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimant","nodeType":"MemberAccess","referencedDeclaration":100511,"src":"26594:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26582:26:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98947,"nodeType":"ExpressionStatement","src":"26582:26:164"},{"expression":{"id":98951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98948,"name":"leftmostCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98886,"src":"26626:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":98949,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98922,"src":"26644:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"26644:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"src":"26626:32:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":98952,"nodeType":"ExpressionStatement","src":"26626:32:164"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":98902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98897,"src":"25574:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":98901,"name":"challengeIndicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98834,"src":"25578:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25574:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98956,"initializationExpression":{"assignments":[98897],"declarations":[{"constant":false,"id":98897,"mutability":"mutable","name":"i","nameLocation":"25567:1:164","nodeType":"VariableDeclaration","scope":98956,"src":"25559:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98896,"name":"uint256","nodeType":"ElementaryTypeName","src":"25559:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":98899,"initialValue":{"hexValue":"30","id":98898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25571:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25559:13:164"},"loopExpression":{"expression":{"id":98904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25599:3:164","subExpression":{"id":98903,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98897,"src":"25601:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":98905,"nodeType":"ExpressionStatement","src":"25599:3:164"},"nodeType":"ForStatement","src":"25554:1129:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":98963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":98958,"name":"countered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98878,"src":"26907:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":98961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26928:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":98960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26920:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98959,"name":"address","nodeType":"ElementaryTypeName","src":"26920:7:164","typeDescriptions":{}}},"id":98962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26920:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26907:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":98966,"name":"countered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98878,"src":"26961:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"26907:63:164","trueExpression":{"expression":{"id":98964,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"26933:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimant","nodeType":"MemberAccess","referencedDeclaration":100511,"src":"26933:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":98968,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"26972:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}],"id":98957,"name":"_distributeBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99493,"src":"26891:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_ClaimData_$100523_storage_ptr_$returns$__$","typeString":"function (address,struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":98969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26891:98:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98970,"nodeType":"ExpressionStatement","src":"26891:98:164"},{"expression":{"id":98975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":98971,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98794,"src":"27161:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":98973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"counteredBy","nodeType":"MemberAccess","referencedDeclaration":100509,"src":"27161:28:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":98974,"name":"countered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98878,"src":"27192:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27161:40:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98976,"nodeType":"ExpressionStatement","src":"27161:40:164"},{"expression":{"id":98981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":98977,"name":"resolvedSubgames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97807,"src":"27253:16:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":98979,"indexExpression":{"id":98978,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98781,"src":"27270:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27253:29:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":98980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27285:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"27253:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":98982,"nodeType":"ExpressionStatement","src":"27253:36:164"}]},"baseFunctions":[100579],"documentation":{"id":98779,"nodeType":"StructuredDocumentation","src":"23391:33:164","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"fdffbb28","implemented":true,"kind":"function","modifiers":[],"name":"resolveClaim","nameLocation":"23438:12:164","parameters":{"id":98782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98781,"mutability":"mutable","name":"_claimIndex","nameLocation":"23459:11:164","nodeType":"VariableDeclaration","scope":98984,"src":"23451:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98780,"name":"uint256","nodeType":"ElementaryTypeName","src":"23451:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23450:21:164"},"returnParameters":{"id":98783,"nodeType":"ParameterList","parameters":[],"src":"23481:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":98997,"nodeType":"FunctionDefinition","src":"27335:108:164","nodes":[],"body":{"id":98996,"nodeType":"Block","src":"27405:38:164","nodes":[],"statements":[{"expression":{"id":98994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98992,"name":"gameType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98990,"src":"27415:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":98993,"name":"GAME_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97738,"src":"27427:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"src":"27415:21:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":98995,"nodeType":"ExpressionStatement","src":"27415:21:164"}]},"baseFunctions":[100281],"documentation":{"id":98985,"nodeType":"StructuredDocumentation","src":"27302:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"bbdc02db","implemented":true,"kind":"function","modifiers":[],"name":"gameType","nameLocation":"27344:8:164","overrides":{"id":98987,"nodeType":"OverrideSpecifier","overrides":[],"src":"27367:8:164"},"parameters":{"id":98986,"nodeType":"ParameterList","parameters":[],"src":"27352:2:164"},"returnParameters":{"id":98991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98990,"mutability":"mutable","name":"gameType_","nameLocation":"27394:9:164","nodeType":"VariableDeclaration","scope":98997,"src":"27385:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":98989,"nodeType":"UserDefinedTypeName","pathNode":{"id":98988,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"27385:8:164"},"referencedDeclaration":103271,"src":"27385:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"}],"src":"27384:20:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":99010,"nodeType":"FunctionDefinition","src":"27482:110:164","nodes":[],"body":{"id":99009,"nodeType":"Block","src":"27544:48:164","nodes":[],"statements":[{"expression":{"id":99007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99003,"name":"creator_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99001,"src":"27554:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30783030","id":99005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27580:4:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":99004,"name":"_getArgAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60423,"src":"27565:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure returns (address)"}},"id":99006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27565:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27554:31:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":99008,"nodeType":"ExpressionStatement","src":"27554:31:164"}]},"baseFunctions":[100287],"documentation":{"id":98998,"nodeType":"StructuredDocumentation","src":"27449:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"37b1b229","implemented":true,"kind":"function","modifiers":[],"name":"gameCreator","nameLocation":"27491:11:164","parameters":{"id":98999,"nodeType":"ParameterList","parameters":[],"src":"27502:2:164"},"returnParameters":{"id":99002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99001,"mutability":"mutable","name":"creator_","nameLocation":"27534:8:164","nodeType":"VariableDeclaration","scope":99010,"src":"27526:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99000,"name":"address","nodeType":"ElementaryTypeName","src":"27526:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27525:18:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":99027,"nodeType":"FunctionDefinition","src":"27631:122:164","nodes":[],"body":{"id":99026,"nodeType":"Block","src":"27691:62:164","nodes":[],"statements":[{"expression":{"id":99024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99017,"name":"rootClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99015,"src":"27701:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30783134","id":99021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27740:4:164","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"0x14"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":99020,"name":"_getArgBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60474,"src":"27725:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":99022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27725:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":99018,"name":"Claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103255,"src":"27714:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Claim_$103255_$","typeString":"type(Claim)"}},"id":99019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"27714:10:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (bytes32) pure returns (Claim)"}},"id":99023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27714:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"27701:45:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":99025,"nodeType":"ExpressionStatement","src":"27701:45:164"}]},"baseFunctions":[100294],"documentation":{"id":99011,"nodeType":"StructuredDocumentation","src":"27598:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"bcef3b55","implemented":true,"kind":"function","modifiers":[],"name":"rootClaim","nameLocation":"27640:9:164","parameters":{"id":99012,"nodeType":"ParameterList","parameters":[],"src":"27649:2:164"},"returnParameters":{"id":99016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99015,"mutability":"mutable","name":"rootClaim_","nameLocation":"27679:10:164","nodeType":"VariableDeclaration","scope":99027,"src":"27673:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99014,"nodeType":"UserDefinedTypeName","pathNode":{"id":99013,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"27673:5:164"},"referencedDeclaration":103255,"src":"27673:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"src":"27672:18:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":99044,"nodeType":"FunctionDefinition","src":"27792:111:164","nodes":[],"body":{"id":99043,"nodeType":"Block","src":"27845:58:164","nodes":[],"statements":[{"expression":{"id":99041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99034,"name":"l1Head_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99032,"src":"27855:7:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30783334","id":99038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27890:4:164","typeDescriptions":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"},"value":"0x34"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"}],"id":99037,"name":"_getArgBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60474,"src":"27875:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":99039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27875:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":99035,"name":"Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103253,"src":"27865:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Hash_$103253_$","typeString":"type(Hash)"}},"id":99036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"27865:9:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (bytes32) pure returns (Hash)"}},"id":99040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27865:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"27855:41:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":99042,"nodeType":"ExpressionStatement","src":"27855:41:164"}]},"baseFunctions":[100301],"documentation":{"id":99028,"nodeType":"StructuredDocumentation","src":"27759:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"6361506d","implemented":true,"kind":"function","modifiers":[],"name":"l1Head","nameLocation":"27801:6:164","parameters":{"id":99029,"nodeType":"ParameterList","parameters":[],"src":"27807:2:164"},"returnParameters":{"id":99033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99032,"mutability":"mutable","name":"l1Head_","nameLocation":"27836:7:164","nodeType":"VariableDeclaration","scope":99044,"src":"27831:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":99031,"nodeType":"UserDefinedTypeName","pathNode":{"id":99030,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"27831:4:164"},"referencedDeclaration":103253,"src":"27831:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"27830:14:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":99058,"nodeType":"FunctionDefinition","src":"27942:231:164","nodes":[],"body":{"id":99057,"nodeType":"Block","src":"28009:164:164","nodes":[],"statements":[{"expression":{"id":99055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99050,"name":"extraData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99048,"src":"28129:10:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30783534","id":99052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28155:4:164","typeDescriptions":{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},"value":"0x54"},{"hexValue":"30783230","id":99053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28161:4:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":99051,"name":"_getArgBytes","nodeType":"Identifier","overloadedDeclarations":[60391,60408],"referencedDeclaration":60408,"src":"28142:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":99054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28142:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28129:37:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":99056,"nodeType":"ExpressionStatement","src":"28129:37:164"}]},"baseFunctions":[100307],"documentation":{"id":99045,"nodeType":"StructuredDocumentation","src":"27909:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"609d3334","implemented":true,"kind":"function","modifiers":[],"name":"extraData","nameLocation":"27951:9:164","parameters":{"id":99046,"nodeType":"ParameterList","parameters":[],"src":"27960:2:164"},"returnParameters":{"id":99049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99048,"mutability":"mutable","name":"extraData_","nameLocation":"27997:10:164","nodeType":"VariableDeclaration","scope":99058,"src":"27984:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":99047,"name":"bytes","nodeType":"ElementaryTypeName","src":"27984:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27983:25:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":99086,"nodeType":"FunctionDefinition","src":"28212:213:164","nodes":[],"body":{"id":99085,"nodeType":"Block","src":"28318:107:164","nodes":[],"statements":[{"expression":{"id":99073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99070,"name":"gameType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99063,"src":"28328:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":99071,"name":"gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98997,"src":"28340:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function () view returns (GameType)"}},"id":99072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28340:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"src":"28328:22:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":99074,"nodeType":"ExpressionStatement","src":"28328:22:164"},{"expression":{"id":99078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99075,"name":"rootClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99066,"src":"28360:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":99076,"name":"rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99027,"src":"28373:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure returns (Claim)"}},"id":99077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28373:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"28360:24:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":99079,"nodeType":"ExpressionStatement","src":"28360:24:164"},{"expression":{"id":99083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99080,"name":"extraData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99068,"src":"28394:10:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":99081,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99058,"src":"28407:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":99082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28407:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28394:24:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":99084,"nodeType":"ExpressionStatement","src":"28394:24:164"}]},"baseFunctions":[100326],"documentation":{"id":99059,"nodeType":"StructuredDocumentation","src":"28179:28:164","text":"@inheritdoc IDisputeGame"},"functionSelector":"fa24f743","implemented":true,"kind":"function","modifiers":[],"name":"gameData","nameLocation":"28221:8:164","parameters":{"id":99060,"nodeType":"ParameterList","parameters":[],"src":"28229:2:164"},"returnParameters":{"id":99069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99063,"mutability":"mutable","name":"gameType_","nameLocation":"28264:9:164","nodeType":"VariableDeclaration","scope":99086,"src":"28255:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":99062,"nodeType":"UserDefinedTypeName","pathNode":{"id":99061,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"28255:8:164"},"referencedDeclaration":103271,"src":"28255:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":99066,"mutability":"mutable","name":"rootClaim_","nameLocation":"28281:10:164","nodeType":"VariableDeclaration","scope":99086,"src":"28275:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99065,"nodeType":"UserDefinedTypeName","pathNode":{"id":99064,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"28275:5:164"},"referencedDeclaration":103255,"src":"28275:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99068,"mutability":"mutable","name":"extraData_","nameLocation":"28306:10:164","nodeType":"VariableDeclaration","scope":99086,"src":"28293:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":99067,"name":"bytes","nodeType":"ElementaryTypeName","src":"28293:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"28254:63:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99215,"nodeType":"FunctionDefinition","src":"28849:2171:164","nodes":[],"body":{"id":99214,"nodeType":"Block","src":"28938:2082:164","nodes":[],"statements":[{"assignments":[99096],"declarations":[{"constant":false,"id":99096,"mutability":"mutable","name":"depth","nameLocation":"28956:5:164","nodeType":"VariableDeclaration","scope":99214,"src":"28948:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99095,"name":"uint256","nodeType":"ElementaryTypeName","src":"28948:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99103,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99099,"name":"_position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99090,"src":"28972:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"28972:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":99101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28972:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":99098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28964:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":99097,"name":"uint256","nodeType":"ElementaryTypeName","src":"28964:7:164","typeDescriptions":{}}},"id":99102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28964:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28948:42:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99104,"name":"depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99096,"src":"29004:5:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":99105,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"29012:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29004:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99110,"nodeType":"IfStatement","src":"29000:54:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":99107,"name":"GameDepthExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103153,"src":"29035:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":99108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29035:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99109,"nodeType":"RevertStatement","src":"29028:26:164"}},{"assignments":[99112],"declarations":[{"constant":false,"id":99112,"mutability":"mutable","name":"assumedBaseFee","nameLocation":"29128:14:164","nodeType":"VariableDeclaration","scope":99214,"src":"29120:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99111,"name":"uint256","nodeType":"ElementaryTypeName","src":"29120:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99114,"initialValue":{"hexValue":"323030","id":99113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29145:8:164","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_200000000000_by_1","typeString":"int_const 200000000000"},"value":"200"},"nodeType":"VariableDeclarationStatement","src":"29120:33:164"},{"assignments":[99116],"declarations":[{"constant":false,"id":99116,"mutability":"mutable","name":"baseGasCharged","nameLocation":"29171:14:164","nodeType":"VariableDeclaration","scope":99214,"src":"29163:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99115,"name":"uint256","nodeType":"ElementaryTypeName","src":"29163:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99118,"initialValue":{"hexValue":"3430305f303030","id":99117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29188:7:164","typeDescriptions":{"typeIdentifier":"t_rational_400000_by_1","typeString":"int_const 400000"},"value":"400_000"},"nodeType":"VariableDeclarationStatement","src":"29163:32:164"},{"assignments":[99120],"declarations":[{"constant":false,"id":99120,"mutability":"mutable","name":"highGasCharged","nameLocation":"29213:14:164","nodeType":"VariableDeclaration","scope":99214,"src":"29205:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99119,"name":"uint256","nodeType":"ElementaryTypeName","src":"29205:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99122,"initialValue":{"hexValue":"3230305f3030305f303030","id":99121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29230:11:164","typeDescriptions":{"typeIdentifier":"t_rational_200000000_by_1","typeString":"int_const 200000000"},"value":"200_000_000"},"nodeType":"VariableDeclarationStatement","src":"29205:36:164"},{"assignments":[99124],"declarations":[{"constant":false,"id":99124,"mutability":"mutable","name":"a","nameLocation":"29993:1:164","nodeType":"VariableDeclaration","scope":99214,"src":"29985:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99123,"name":"uint256","nodeType":"ElementaryTypeName","src":"29985:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99125,"name":"highGasCharged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99120,"src":"29997:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":99126,"name":"baseGasCharged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99116,"src":"30014:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29997:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29985:43:164"},{"assignments":[99130],"declarations":[{"constant":false,"id":99130,"mutability":"mutable","name":"b","nameLocation":"30046:1:164","nodeType":"VariableDeclaration","scope":99214,"src":"30038:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99129,"name":"uint256","nodeType":"ElementaryTypeName","src":"30038:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99133,"initialValue":{"expression":{"id":99131,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30050:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":61009,"src":"30050:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30038:33:164"},{"assignments":[99135],"declarations":[{"constant":false,"id":99135,"mutability":"mutable","name":"c","nameLocation":"30089:1:164","nodeType":"VariableDeclaration","scope":99214,"src":"30081:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99134,"name":"uint256","nodeType":"ElementaryTypeName","src":"30081:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99140,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99136,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"30093:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":99137,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30110:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":61009,"src":"30110:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30093:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30081:50:164"},{"assignments":[99142],"declarations":[{"constant":false,"id":99142,"mutability":"mutable","name":"lnA","nameLocation":"30236:3:164","nodeType":"VariableDeclaration","scope":99214,"src":"30228:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99141,"name":"uint256","nodeType":"ElementaryTypeName","src":"30228:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99156,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99149,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99124,"src":"30281:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":99150,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30285:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":61009,"src":"30285:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30281:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":99148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30274:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":99147,"name":"int256","nodeType":"ElementaryTypeName","src":"30274:6:164","typeDescriptions":{}}},"id":99153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30274:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":99145,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30250:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":61377,"src":"30250:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":99154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30250:58:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":99144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30242:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":99143,"name":"uint256","nodeType":"ElementaryTypeName","src":"30242:7:164","typeDescriptions":{}}},"id":99155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30242:67:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30228:81:164"},{"assignments":[99158],"declarations":[{"constant":false,"id":99158,"mutability":"mutable","name":"bOverC","nameLocation":"30394:6:164","nodeType":"VariableDeclaration","scope":99214,"src":"30386:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99157,"name":"uint256","nodeType":"ElementaryTypeName","src":"30386:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99164,"initialValue":{"arguments":[{"id":99161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99130,"src":"30428:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":99162,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99135,"src":"30431:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99159,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30403:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"divWad","nodeType":"MemberAccess","referencedDeclaration":61093,"src":"30403:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":99163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30403:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30386:47:164"},{"assignments":[99166],"declarations":[{"constant":false,"id":99166,"mutability":"mutable","name":"numerator","nameLocation":"30575:9:164","nodeType":"VariableDeclaration","scope":99214,"src":"30567:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99165,"name":"uint256","nodeType":"ElementaryTypeName","src":"30567:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99172,"initialValue":{"arguments":[{"id":99169,"name":"lnA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99142,"src":"30612:3:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":99170,"name":"bOverC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99158,"src":"30617:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99167,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30587:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulWad","nodeType":"MemberAccess","referencedDeclaration":61021,"src":"30587:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":99171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30587:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30567:57:164"},{"assignments":[99174],"declarations":[{"constant":false,"id":99174,"mutability":"mutable","name":"base","nameLocation":"30641:4:164","nodeType":"VariableDeclaration","scope":99214,"src":"30634:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":99173,"name":"int256","nodeType":"ElementaryTypeName","src":"30634:6:164","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":99182,"initialValue":{"arguments":[{"arguments":[{"id":99179,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99166,"src":"30680:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":99178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30673:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":99177,"name":"int256","nodeType":"ElementaryTypeName","src":"30673:6:164","typeDescriptions":{}}},"id":99180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30673:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":99175,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30648:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":61367,"src":"30648:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":99181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30648:43:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"30634:57:164"},{"assignments":[99184],"declarations":[{"constant":false,"id":99184,"mutability":"mutable","name":"rawGas","nameLocation":"30753:6:164","nodeType":"VariableDeclaration","scope":99214,"src":"30746:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":99183,"name":"int256","nodeType":"ElementaryTypeName","src":"30746:6:164","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":99196,"initialValue":{"arguments":[{"id":99187,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99174,"src":"30787:4:164","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99190,"name":"depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99096,"src":"30800:5:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":99191,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30808:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":61009,"src":"30808:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30800:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":99189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30793:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":99188,"name":"int256","nodeType":"ElementaryTypeName","src":"30793:6:164","typeDescriptions":{}}},"id":99194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30793:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":99185,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30762:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":61178,"src":"30762:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":99195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30762:69:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"30746:85:164"},{"assignments":[99198],"declarations":[{"constant":false,"id":99198,"mutability":"mutable","name":"requiredGas","nameLocation":"30849:11:164","nodeType":"VariableDeclaration","scope":99214,"src":"30841:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99197,"name":"uint256","nodeType":"ElementaryTypeName","src":"30841:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99207,"initialValue":{"arguments":[{"id":99201,"name":"baseGasCharged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99116,"src":"30888:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":99204,"name":"rawGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99184,"src":"30912:6:164","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":99203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30904:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":99202,"name":"uint256","nodeType":"ElementaryTypeName","src":"30904:7:164","typeDescriptions":{}}},"id":99205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30904:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99199,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62288,"src":"30863:17:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$62288_$","typeString":"type(library FixedPointMathLib)"}},"id":99200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulWad","nodeType":"MemberAccess","referencedDeclaration":61021,"src":"30863:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":99206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30863:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30841:79:164"},{"expression":{"id":99212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99208,"name":"requiredBond_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99093,"src":"30969:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99209,"name":"assumedBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99112,"src":"30985:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":99210,"name":"requiredGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99198,"src":"31002:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30985:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30969:44:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99213,"nodeType":"ExpressionStatement","src":"30969:44:164"}]},"documentation":{"id":99087,"nodeType":"StructuredDocumentation","src":"28639:205:164","text":"@notice Returns the required bond for a given move kind.\n @param _position The position of the bonded interaction.\n @return requiredBond_ The required ETH bond for the given move, in wei."},"functionSelector":"c395e1ca","implemented":true,"kind":"function","modifiers":[],"name":"getRequiredBond","nameLocation":"28858:15:164","parameters":{"id":99091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99090,"mutability":"mutable","name":"_position","nameLocation":"28883:9:164","nodeType":"VariableDeclaration","scope":99215,"src":"28874:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99089,"nodeType":"UserDefinedTypeName","pathNode":{"id":99088,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"28874:8:164"},"referencedDeclaration":103269,"src":"28874:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"src":"28873:20:164"},"returnParameters":{"id":99094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99093,"mutability":"mutable","name":"requiredBond_","nameLocation":"28923:13:164","nodeType":"VariableDeclaration","scope":99215,"src":"28915:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99092,"name":"uint256","nodeType":"ElementaryTypeName","src":"28915:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28914:23:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":99264,"nodeType":"FunctionDefinition","src":"31160:671:164","nodes":[],"body":{"id":99263,"nodeType":"Block","src":"31210:621:164","nodes":[],"statements":[{"assignments":[99222],"declarations":[{"constant":false,"id":99222,"mutability":"mutable","name":"recipientCredit","nameLocation":"31315:15:164","nodeType":"VariableDeclaration","scope":99263,"src":"31307:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99221,"name":"uint256","nodeType":"ElementaryTypeName","src":"31307:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99226,"initialValue":{"baseExpression":{"id":99223,"name":"credit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97790,"src":"31333:6:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":99225,"indexExpression":{"id":99224,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99218,"src":"31340:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31333:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31307:44:164"},{"expression":{"id":99231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":99227,"name":"credit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97790,"src":"31361:6:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":99229,"indexExpression":{"id":99228,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99218,"src":"31368:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31361:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":99230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31382:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31361:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99232,"nodeType":"ExpressionStatement","src":"31361:22:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99233,"name":"recipientCredit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99222,"src":"31457:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":99234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31476:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31457:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99240,"nodeType":"IfStatement","src":"31453:75:164","trueBody":{"id":99239,"nodeType":"Block","src":"31479:49:164","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":99236,"name":"NoCreditToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103126,"src":"31500:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":99237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31500:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99238,"nodeType":"RevertStatement","src":"31493:24:164"}]}},{"expression":{"arguments":[{"id":99244,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99218,"src":"31619:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":99245,"name":"recipientCredit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99222,"src":"31631:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99241,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"31605:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":99243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":100224,"src":"31605:13:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":99246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31605:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99247,"nodeType":"ExpressionStatement","src":"31605:42:164"},{"assignments":[99249,null],"declarations":[{"constant":false,"id":99249,"mutability":"mutable","name":"success","nameLocation":"31713:7:164","nodeType":"VariableDeclaration","scope":99263,"src":"31708:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99248,"name":"bool","nodeType":"ElementaryTypeName","src":"31708:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":99256,"initialValue":{"arguments":[{"hexValue":"","id":99254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"31767:5:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":99250,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99218,"src":"31725:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":99251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"31725:15:164","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":99253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":99252,"name":"recipientCredit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99222,"src":"31749:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"31725:41:164","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":99255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31725:48:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"31707:66:164"},{"condition":{"id":99258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31787:8:164","subExpression":{"id":99257,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99249,"src":"31788:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99262,"nodeType":"IfStatement","src":"31783:41:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":99259,"name":"BondTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103129,"src":"31804:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":99260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31804:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99261,"nodeType":"RevertStatement","src":"31797:27:164"}}]},"documentation":{"id":99216,"nodeType":"StructuredDocumentation","src":"31026:129:164","text":"@notice Claim the credit belonging to the recipient address.\n @param _recipient The owner and recipient of the credit."},"functionSelector":"60e27464","implemented":true,"kind":"function","modifiers":[],"name":"claimCredit","nameLocation":"31169:11:164","parameters":{"id":99219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99218,"mutability":"mutable","name":"_recipient","nameLocation":"31189:10:164","nodeType":"VariableDeclaration","scope":99264,"src":"31181:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99217,"name":"address","nodeType":"ElementaryTypeName","src":"31181:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31180:20:164"},"returnParameters":{"id":99220,"nodeType":"ParameterList","parameters":[],"src":"31210:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99348,"nodeType":"FunctionDefinition","src":"32166:1011:164","nodes":[],"body":{"id":99347,"nodeType":"Block","src":"32259:918:164","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":99276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99273,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97777,"src":"32381:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":99274,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"32391:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":99275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"IN_PROGRESS","nodeType":"MemberAccess","referencedDeclaration":103274,"src":"32391:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"32381:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99281,"nodeType":"IfStatement","src":"32377:89:164","trueBody":{"id":99280,"nodeType":"Block","src":"32415:51:164","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":99277,"name":"GameNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103144,"src":"32436:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":99278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32436:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99279,"nodeType":"RevertStatement","src":"32429:26:164"}]}},{"assignments":[99284],"declarations":[{"constant":false,"id":99284,"mutability":"mutable","name":"subgameRootClaim","nameLocation":"32535:16:164","nodeType":"VariableDeclaration","scope":99347,"src":"32517:34:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99283,"nodeType":"UserDefinedTypeName","pathNode":{"id":99282,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"32517:9:164"},"referencedDeclaration":100523,"src":"32517:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99288,"initialValue":{"baseExpression":{"id":99285,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"32554:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99287,"indexExpression":{"id":99286,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99267,"src":"32564:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32554:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32517:59:164"},{"assignments":[99291],"declarations":[{"constant":false,"id":99291,"mutability":"mutable","name":"parentClock","nameLocation":"32664:11:164","nodeType":"VariableDeclaration","scope":99347,"src":"32658:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"},"typeName":{"id":99290,"nodeType":"UserDefinedTypeName","pathNode":{"id":99289,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":103267,"src":"32658:5:164"},"referencedDeclaration":103267,"src":"32658:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"visibility":"internal"}],"id":99292,"nodeType":"VariableDeclarationStatement","src":"32658:17:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":99300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":99293,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99284,"src":"32689:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"32689:28:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":99297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32726:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":99296,"name":"uint32","nodeType":"ElementaryTypeName","src":"32726:6:164","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":99295,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"32721:4:164","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":99298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32721:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":99299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"32721:16:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"32689:48:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99310,"nodeType":"IfStatement","src":"32685:138:164","trueBody":{"id":99309,"nodeType":"Block","src":"32739:84:164","statements":[{"expression":{"id":99307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99301,"name":"parentClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99291,"src":"32753:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":99302,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"32767:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99305,"indexExpression":{"expression":{"id":99303,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99284,"src":"32777:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"32777:28:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32767:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"id":99306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"clock","nodeType":"MemberAccess","referencedDeclaration":100522,"src":"32767:45:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"src":"32753:59:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"id":99308,"nodeType":"ExpressionStatement","src":"32753:59:164"}]}},{"assignments":[99312],"declarations":[{"constant":false,"id":99312,"mutability":"mutable","name":"challengeDuration","nameLocation":"32917:17:164","nodeType":"VariableDeclaration","scope":99347,"src":"32910:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":99311,"name":"uint64","nodeType":"ElementaryTypeName","src":"32910:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":99332,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99315,"name":"parentClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99291,"src":"32956:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"id":99316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":101049,"src":"32956:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Clock_$103267_$returns$_t_userDefinedValueType$_Duration_$103263_$bound_to$_t_userDefinedValueType$_Clock_$103267_$","typeString":"function (Clock) pure returns (Duration)"}},"id":99317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32956:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"32956:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":99319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32956:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":99320,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32988:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":99321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"32988:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99322,"name":"subgameRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99284,"src":"33006:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"clock","nodeType":"MemberAccess","referencedDeclaration":100522,"src":"33006:22:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$103267","typeString":"Clock"}},"id":99324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":101061,"src":"33006:32:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Clock_$103267_$returns$_t_userDefinedValueType$_Timestamp_$103261_$bound_to$_t_userDefinedValueType$_Clock_$103267_$","typeString":"function (Clock) pure returns (Timestamp)"}},"id":99325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33006:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"id":99326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101124,"src":"33006:38:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (Timestamp) pure returns (uint64)"}},"id":99327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33006:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"32988:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":99329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32987:60:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32956:91:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":99314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32949:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":99313,"name":"uint64","nodeType":"ElementaryTypeName","src":"32949:6:164","typeDescriptions":{}}},"id":99331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32949:99:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"32910:138:164"},{"expression":{"id":99345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99333,"name":"duration_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99271,"src":"33058:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":99338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99334,"name":"challengeDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99312,"src":"33070:17:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99335,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"33090:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101098,"src":"33090:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (Duration) pure returns (uint64)"}},"id":99337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33090:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"33070:44:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":99342,"name":"challengeDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99312,"src":"33152:17:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":99340,"name":"Duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103263,"src":"33138:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Duration_$103263_$","typeString":"type(Duration)"}},"id":99341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"33138:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$","typeString":"function (uint64) pure returns (Duration)"}},"id":99343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33138:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33070:100:164","trueExpression":{"id":99339,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"33117:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"33058:112:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99346,"nodeType":"ExpressionStatement","src":"33058:112:164"}]},"documentation":{"id":99265,"nodeType":"StructuredDocumentation","src":"31837:324:164","text":"@notice Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes\n out at `MAX_CLOCK_DURATION`.\n @param _claimIndex The index of the subgame root claim.\n @return duration_ The time elapsed on the potential challenger to `_claimIndex`'s chess clock."},"functionSelector":"bd8da956","implemented":true,"kind":"function","modifiers":[],"name":"getChallengerDuration","nameLocation":"32175:21:164","parameters":{"id":99268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99267,"mutability":"mutable","name":"_claimIndex","nameLocation":"32205:11:164","nodeType":"VariableDeclaration","scope":99348,"src":"32197:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99266,"name":"uint256","nodeType":"ElementaryTypeName","src":"32197:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32196:21:164"},"returnParameters":{"id":99272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99271,"mutability":"mutable","name":"duration_","nameLocation":"32248:9:164","nodeType":"VariableDeclaration","scope":99348,"src":"32239:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":99270,"nodeType":"UserDefinedTypeName","pathNode":{"id":99269,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"32239:8:164"},"referencedDeclaration":103263,"src":"32239:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"}],"src":"32238:20:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":99360,"nodeType":"FunctionDefinition","src":"33244:101:164","nodes":[],"body":{"id":99359,"nodeType":"Block","src":"33305:40:164","nodes":[],"statements":[{"expression":{"id":99357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99354,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99352,"src":"33315:4:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":99355,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"33322:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"33322:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33315:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99358,"nodeType":"ExpressionStatement","src":"33315:23:164"}]},"documentation":{"id":99349,"nodeType":"StructuredDocumentation","src":"33183:56:164","text":"@notice Returns the length of the `claimData` array."},"functionSelector":"8980e0cc","implemented":true,"kind":"function","modifiers":[],"name":"claimDataLen","nameLocation":"33253:12:164","parameters":{"id":99350,"nodeType":"ParameterList","parameters":[],"src":"33265:2:164"},"returnParameters":{"id":99353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99352,"mutability":"mutable","name":"len_","nameLocation":"33299:4:164","nodeType":"VariableDeclaration","scope":99360,"src":"33291:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99351,"name":"uint256","nodeType":"ElementaryTypeName","src":"33291:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33290:14:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99372,"nodeType":"FunctionDefinition","src":"33631:130:164","nodes":[],"body":{"id":99371,"nodeType":"Block","src":"33707:54:164","nodes":[],"statements":[{"expression":{"id":99369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99367,"name":"absolutePrestate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99365,"src":"33717:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99368,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97720,"src":"33737:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"33717:37:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":99370,"nodeType":"ExpressionStatement","src":"33717:37:164"}]},"documentation":{"id":99361,"nodeType":"StructuredDocumentation","src":"33559:67:164","text":"@notice Returns the absolute prestate of the instruction trace."},"functionSelector":"8d450a95","implemented":true,"kind":"function","modifiers":[],"name":"absolutePrestate","nameLocation":"33640:16:164","parameters":{"id":99362,"nodeType":"ParameterList","parameters":[],"src":"33656:2:164"},"returnParameters":{"id":99366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99365,"mutability":"mutable","name":"absolutePrestate_","nameLocation":"33688:17:164","nodeType":"VariableDeclaration","scope":99372,"src":"33682:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99364,"nodeType":"UserDefinedTypeName","pathNode":{"id":99363,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"33682:5:164"},"referencedDeclaration":103255,"src":"33682:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"src":"33681:25:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99383,"nodeType":"FunctionDefinition","src":"33811:117:164","nodes":[],"body":{"id":99382,"nodeType":"Block","src":"33881:47:164","nodes":[],"statements":[{"expression":{"id":99380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99378,"name":"maxGameDepth_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99376,"src":"33891:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99379,"name":"MAX_GAME_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97723,"src":"33907:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33891:30:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99381,"nodeType":"ExpressionStatement","src":"33891:30:164"}]},"documentation":{"id":99373,"nodeType":"StructuredDocumentation","src":"33767:39:164","text":"@notice Returns the max game depth."},"functionSelector":"fa315aa9","implemented":true,"kind":"function","modifiers":[],"name":"maxGameDepth","nameLocation":"33820:12:164","parameters":{"id":99374,"nodeType":"ParameterList","parameters":[],"src":"33832:2:164"},"returnParameters":{"id":99377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99376,"mutability":"mutable","name":"maxGameDepth_","nameLocation":"33866:13:164","nodeType":"VariableDeclaration","scope":99383,"src":"33858:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99375,"name":"uint256","nodeType":"ElementaryTypeName","src":"33858:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33857:23:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99394,"nodeType":"FunctionDefinition","src":"33975:108:164","nodes":[],"body":{"id":99393,"nodeType":"Block","src":"34041:42:164","nodes":[],"statements":[{"expression":{"id":99391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99389,"name":"splitDepth_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99387,"src":"34051:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99390,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"34065:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34051:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99392,"nodeType":"ExpressionStatement","src":"34051:25:164"}]},"documentation":{"id":99384,"nodeType":"StructuredDocumentation","src":"33934:36:164","text":"@notice Returns the split depth."},"functionSelector":"ec5e6308","implemented":true,"kind":"function","modifiers":[],"name":"splitDepth","nameLocation":"33984:10:164","parameters":{"id":99385,"nodeType":"ParameterList","parameters":[],"src":"33994:2:164"},"returnParameters":{"id":99388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99387,"mutability":"mutable","name":"splitDepth_","nameLocation":"34028:11:164","nodeType":"VariableDeclaration","scope":99394,"src":"34020:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99386,"name":"uint256","nodeType":"ElementaryTypeName","src":"34020:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34019:21:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99406,"nodeType":"FunctionDefinition","src":"34137:134:164","nodes":[],"body":{"id":99405,"nodeType":"Block","src":"34216:55:164","nodes":[],"statements":[{"expression":{"id":99403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99401,"name":"maxClockDuration_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99399,"src":"34226:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99402,"name":"MAX_CLOCK_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97730,"src":"34246:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"34226:38:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99404,"nodeType":"ExpressionStatement","src":"34226:38:164"}]},"documentation":{"id":99395,"nodeType":"StructuredDocumentation","src":"34089:43:164","text":"@notice Returns the max clock duration."},"functionSelector":"dabd396d","implemented":true,"kind":"function","modifiers":[],"name":"maxClockDuration","nameLocation":"34146:16:164","parameters":{"id":99396,"nodeType":"ParameterList","parameters":[],"src":"34162:2:164"},"returnParameters":{"id":99400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99399,"mutability":"mutable","name":"maxClockDuration_","nameLocation":"34197:17:164","nodeType":"VariableDeclaration","scope":99406,"src":"34188:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":99398,"nodeType":"UserDefinedTypeName","pathNode":{"id":99397,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"34188:8:164"},"referencedDeclaration":103263,"src":"34188:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"}],"src":"34187:28:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99418,"nodeType":"FunctionDefinition","src":"34331:125:164","nodes":[],"body":{"id":99417,"nodeType":"Block","src":"34406:50:164","nodes":[],"statements":[{"expression":{"id":99415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99413,"name":"clockExtension_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99411,"src":"34416:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99414,"name":"CLOCK_EXTENSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97753,"src":"34434:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"src":"34416:33:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"id":99416,"nodeType":"ExpressionStatement","src":"34416:33:164"}]},"documentation":{"id":99407,"nodeType":"StructuredDocumentation","src":"34277:49:164","text":"@notice Returns the clock extension constant."},"functionSelector":"6b6716c0","implemented":true,"kind":"function","modifiers":[],"name":"clockExtension","nameLocation":"34340:14:164","parameters":{"id":99408,"nodeType":"ParameterList","parameters":[],"src":"34354:2:164"},"returnParameters":{"id":99412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99411,"mutability":"mutable","name":"clockExtension_","nameLocation":"34389:15:164","nodeType":"VariableDeclaration","scope":99418,"src":"34380:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"},"typeName":{"id":99410,"nodeType":"UserDefinedTypeName","pathNode":{"id":99409,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":103263,"src":"34380:8:164"},"referencedDeclaration":103263,"src":"34380:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$103263","typeString":"Duration"}},"visibility":"internal"}],"src":"34379:26:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99430,"nodeType":"FunctionDefinition","src":"34509:79:164","nodes":[],"body":{"id":99429,"nodeType":"Block","src":"34563:25:164","nodes":[],"statements":[{"expression":{"id":99427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99425,"name":"vm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99423,"src":"34573:3:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99426,"name":"VM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97734,"src":"34579:2:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"src":"34573:8:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"id":99428,"nodeType":"ExpressionStatement","src":"34573:8:164"}]},"documentation":{"id":99419,"nodeType":"StructuredDocumentation","src":"34462:42:164","text":"@notice Returns the address of the VM."},"functionSelector":"3a768463","implemented":true,"kind":"function","modifiers":[],"name":"vm","nameLocation":"34518:2:164","parameters":{"id":99420,"nodeType":"ParameterList","parameters":[],"src":"34520:2:164"},"returnParameters":{"id":99424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99423,"mutability":"mutable","name":"vm_","nameLocation":"34558:3:164","nodeType":"VariableDeclaration","scope":99430,"src":"34546:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"},"typeName":{"id":99422,"nodeType":"UserDefinedTypeName","pathNode":{"id":99421,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":100171,"src":"34546:11:164"},"referencedDeclaration":100171,"src":"34546:11:164","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$100171","typeString":"contract IBigStepper"}},"visibility":"internal"}],"src":"34545:17:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99442,"nodeType":"FunctionDefinition","src":"34653:88:164","nodes":[],"body":{"id":99441,"nodeType":"Block","src":"34712:29:164","nodes":[],"statements":[{"expression":{"id":99439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99437,"name":"weth_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99435,"src":"34722:5:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99438,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"34730:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"src":"34722:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":99440,"nodeType":"ExpressionStatement","src":"34722:12:164"}]},"documentation":{"id":99431,"nodeType":"StructuredDocumentation","src":"34594:54:164","text":"@notice Returns the WETH contract for holding ETH."},"functionSelector":"3fc8cef3","implemented":true,"kind":"function","modifiers":[],"name":"weth","nameLocation":"34662:4:164","parameters":{"id":99432,"nodeType":"ParameterList","parameters":[],"src":"34666:2:164"},"returnParameters":{"id":99436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99435,"mutability":"mutable","name":"weth_","nameLocation":"34705:5:164","nodeType":"VariableDeclaration","scope":99442,"src":"34692:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"},"typeName":{"id":99434,"nodeType":"UserDefinedTypeName","pathNode":{"id":99433,"name":"IDelayedWETH","nodeType":"IdentifierPath","referencedDeclaration":100239,"src":"34692:12:164"},"referencedDeclaration":100239,"src":"34692:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"visibility":"internal"}],"src":"34691:20:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99454,"nodeType":"FunctionDefinition","src":"34807:136:164","nodes":[],"body":{"id":99453,"nodeType":"Block","src":"34893:50:164","nodes":[],"statements":[{"expression":{"id":99451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99449,"name":"registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99447,"src":"34903:9:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99450,"name":"ANCHOR_STATE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97746,"src":"34915:21:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"src":"34903:33:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"id":99452,"nodeType":"ExpressionStatement","src":"34903:33:164"}]},"documentation":{"id":99443,"nodeType":"StructuredDocumentation","src":"34747:55:164","text":"@notice Returns the anchor state registry contract."},"functionSelector":"5c0cba33","implemented":true,"kind":"function","modifiers":[],"name":"anchorStateRegistry","nameLocation":"34816:19:164","parameters":{"id":99444,"nodeType":"ParameterList","parameters":[],"src":"34835:2:164"},"returnParameters":{"id":99448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99447,"mutability":"mutable","name":"registry_","nameLocation":"34882:9:164","nodeType":"VariableDeclaration","scope":99454,"src":"34861:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"},"typeName":{"id":99446,"nodeType":"UserDefinedTypeName","pathNode":{"id":99445,"name":"IAnchorStateRegistry","nodeType":"IdentifierPath","referencedDeclaration":100146,"src":"34861:20:164"},"referencedDeclaration":100146,"src":"34861:20:164","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$100146","typeString":"contract IAnchorStateRegistry"}},"visibility":"internal"}],"src":"34860:32:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99465,"nodeType":"FunctionDefinition","src":"35032:105:164","nodes":[],"body":{"id":99464,"nodeType":"Block","src":"35096:41:164","nodes":[],"statements":[{"expression":{"id":99462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99460,"name":"l2ChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99458,"src":"35106:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99461,"name":"L2_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97749,"src":"35119:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35106:24:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99463,"nodeType":"ExpressionStatement","src":"35106:24:164"}]},"documentation":{"id":99455,"nodeType":"StructuredDocumentation","src":"34949:78:164","text":"@notice Returns the chain ID of the L2 network this contract argues about."},"functionSelector":"d6ae3cd5","implemented":true,"kind":"function","modifiers":[],"name":"l2ChainId","nameLocation":"35041:9:164","parameters":{"id":99456,"nodeType":"ParameterList","parameters":[],"src":"35050:2:164"},"returnParameters":{"id":99459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99458,"mutability":"mutable","name":"l2ChainId_","nameLocation":"35084:10:164","nodeType":"VariableDeclaration","scope":99465,"src":"35076:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99457,"name":"uint256","nodeType":"ElementaryTypeName","src":"35076:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35075:20:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99493,"nodeType":"FunctionDefinition","src":"35528:361:164","nodes":[],"body":{"id":99492,"nodeType":"Block","src":"35609:280:164","nodes":[],"statements":[{"assignments":[99475],"declarations":[{"constant":false,"id":99475,"mutability":"mutable","name":"bond","nameLocation":"35714:4:164","nodeType":"VariableDeclaration","scope":99492,"src":"35706:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99474,"name":"uint256","nodeType":"ElementaryTypeName","src":"35706:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99478,"initialValue":{"expression":{"id":99476,"name":"_bonded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99471,"src":"35721:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bond","nodeType":"MemberAccess","referencedDeclaration":100513,"src":"35721:12:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"35706:27:164"},{"expression":{"id":99483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":99479,"name":"credit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97790,"src":"35788:6:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":99481,"indexExpression":{"id":99480,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99468,"src":"35795:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"35788:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":99482,"name":"bond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99475,"src":"35810:4:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35788:26:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99484,"nodeType":"ExpressionStatement","src":"35788:26:164"},{"expression":{"arguments":[{"id":99488,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99468,"src":"35865:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":99489,"name":"bond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99475,"src":"35877:4:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99485,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97742,"src":"35853:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$100239","typeString":"contract IDelayedWETH"}},"id":99487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":100216,"src":"35853:11:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":99490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35853:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99491,"nodeType":"ExpressionStatement","src":"35853:29:164"}]},"documentation":{"id":99466,"nodeType":"StructuredDocumentation","src":"35351:172:164","text":"@notice Pays out the bond of a claim to a given recipient.\n @param _recipient The recipient of the bond.\n @param _bonded The claim to pay out the bond of."},"implemented":true,"kind":"function","modifiers":[],"name":"_distributeBond","nameLocation":"35537:15:164","parameters":{"id":99472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99468,"mutability":"mutable","name":"_recipient","nameLocation":"35561:10:164","nodeType":"VariableDeclaration","scope":99493,"src":"35553:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99467,"name":"address","nodeType":"ElementaryTypeName","src":"35553:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99471,"mutability":"mutable","name":"_bonded","nameLocation":"35591:7:164","nodeType":"VariableDeclaration","scope":99493,"src":"35573:25:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99470,"nodeType":"UserDefinedTypeName","pathNode":{"id":99469,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"35573:9:164"},"referencedDeclaration":100523,"src":"35573:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"src":"35552:47:164"},"returnParameters":{"id":99473,"nodeType":"ParameterList","parameters":[],"src":"35609:0:164"},"scope":99927,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":99587,"nodeType":"FunctionDefinition","src":"36108:1977:164","nodes":[],"body":{"id":99586,"nodeType":"Block","src":"36289:1796:164","nodes":[],"statements":[{"assignments":[99509],"declarations":[{"constant":false,"id":99509,"mutability":"mutable","name":"disputedLeafPos","nameLocation":"36869:15:164","nodeType":"VariableDeclaration","scope":99586,"src":"36860:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99508,"nodeType":"UserDefinedTypeName","pathNode":{"id":99507,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"36860:8:164"},"referencedDeclaration":103269,"src":"36860:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":99518,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99512,"name":"_parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99502,"src":"36901:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"36901:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36901:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":99515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36920:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36901:20:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":99510,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"36887:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":99511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"36887:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":99517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36887:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"36860:62:164"},{"assignments":[99521],"declarations":[{"constant":false,"id":99521,"mutability":"mutable","name":"disputed","nameLocation":"36950:8:164","nodeType":"VariableDeclaration","scope":99586,"src":"36932:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99520,"nodeType":"UserDefinedTypeName","pathNode":{"id":99519,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"36932:9:164"},"referencedDeclaration":100523,"src":"36932:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99527,"initialValue":{"arguments":[{"id":99523,"name":"disputedLeafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99509,"src":"36988:15:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":99524,"name":"_parentIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99499,"src":"37013:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":99525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"37034:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":99522,"name":"_findTraceAncestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99638,"src":"36961:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":99526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_pos","_start","_global"],"nodeType":"FunctionCall","src":"36961:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36932:109:164"},{"assignments":[99529],"declarations":[{"constant":false,"id":99529,"mutability":"mutable","name":"vmStatus","nameLocation":"37057:8:164","nodeType":"VariableDeclaration","scope":99586,"src":"37051:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":99528,"name":"uint8","nodeType":"ElementaryTypeName","src":"37051:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":99538,"initialValue":{"arguments":[{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99532,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99497,"src":"37074:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":99533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"37074:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":99534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37074:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":99536,"indexExpression":{"hexValue":"30","id":99535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37091:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37074:19:164","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":99531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"37068:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":99530,"name":"uint8","nodeType":"ElementaryTypeName","src":"37068:5:164","typeDescriptions":{}}},"id":99537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37068:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"37051:43:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":99550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99539,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99504,"src":"37109:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":99545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99540,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99521,"src":"37122:8:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"37122:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"37122:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":99543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37122:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":99544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37150:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"37122:29:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99546,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"37155:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":99547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37169:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"37155:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37122:48:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37109:61:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":99578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99573,"name":"vmStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99529,"src":"37816:8:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99574,"name":"VMStatuses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103351,"src":"37828:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VMStatuses_$103351_$","typeString":"type(library VMStatuses)"}},"id":99575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"VALID","nodeType":"MemberAccess","referencedDeclaration":103326,"src":"37828:16:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$103273","typeString":"VMStatus"}},"id":99576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101137,"src":"37828:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$","typeString":"function (VMStatus) pure returns (uint8)"}},"id":99577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37828:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"37816:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99584,"nodeType":"IfStatement","src":"37812:267:164","trueBody":{"id":99583,"nodeType":"Block","src":"37852:227:164","statements":[{"errorCall":{"arguments":[{"id":99580,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99497,"src":"38057:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}],"id":99579,"name":"UnexpectedRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103117,"src":"38037:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$","typeString":"function (Claim) pure"}},"id":99581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38037:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99582,"nodeType":"RevertStatement","src":"38030:38:164"}]}},"id":99585,"nodeType":"IfStatement","src":"37105:974:164","trueBody":{"id":99572,"nodeType":"Block","src":"37172:634:164","statements":[{"condition":{"id":99565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37646:77:164","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":99563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":99556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99551,"name":"vmStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99529,"src":"37648:8:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99552,"name":"VMStatuses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103351,"src":"37660:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VMStatuses_$103351_$","typeString":"type(library VMStatuses)"}},"id":99553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"INVALID","nodeType":"MemberAccess","referencedDeclaration":103334,"src":"37660:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$103273","typeString":"VMStatus"}},"id":99554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101137,"src":"37660:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$","typeString":"function (VMStatus) pure returns (uint8)"}},"id":99555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37660:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"37648:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":99562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99557,"name":"vmStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99529,"src":"37688:8:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99558,"name":"VMStatuses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103351,"src":"37700:10:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VMStatuses_$103351_$","typeString":"type(library VMStatuses)"}},"id":99559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PANIC","nodeType":"MemberAccess","referencedDeclaration":103342,"src":"37700:16:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$103273","typeString":"VMStatus"}},"id":99560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101137,"src":"37700:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$","typeString":"function (VMStatus) pure returns (uint8)"}},"id":99561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37700:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"37688:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37648:74:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":99564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"37647:76:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99571,"nodeType":"IfStatement","src":"37642:154:164","trueBody":{"id":99570,"nodeType":"Block","src":"37725:71:164","statements":[{"errorCall":{"arguments":[{"id":99567,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99497,"src":"37770:10:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}],"id":99566,"name":"UnexpectedRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103117,"src":"37750:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$","typeString":"function (Claim) pure"}},"id":99568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37750:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99569,"nodeType":"RevertStatement","src":"37743:38:164"}]}}]}}]},"documentation":{"id":99494,"nodeType":"StructuredDocumentation","src":"35895:208:164","text":"@notice Verifies the integrity of an execution bisection subgame's root claim. Reverts if the claim\n is invalid.\n @param _rootClaim The root claim of the execution bisection subgame."},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyExecBisectionRoot","nameLocation":"36117:24:164","parameters":{"id":99505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99497,"mutability":"mutable","name":"_rootClaim","nameLocation":"36157:10:164","nodeType":"VariableDeclaration","scope":99587,"src":"36151:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99496,"nodeType":"UserDefinedTypeName","pathNode":{"id":99495,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"36151:5:164"},"referencedDeclaration":103255,"src":"36151:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99499,"mutability":"mutable","name":"_parentIdx","nameLocation":"36185:10:164","nodeType":"VariableDeclaration","scope":99587,"src":"36177:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99498,"name":"uint256","nodeType":"ElementaryTypeName","src":"36177:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99502,"mutability":"mutable","name":"_parentPos","nameLocation":"36214:10:164","nodeType":"VariableDeclaration","scope":99587,"src":"36205:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99501,"nodeType":"UserDefinedTypeName","pathNode":{"id":99500,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"36205:8:164"},"referencedDeclaration":103269,"src":"36205:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99504,"mutability":"mutable","name":"_isAttack","nameLocation":"36239:9:164","nodeType":"VariableDeclaration","scope":99587,"src":"36234:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99503,"name":"bool","nodeType":"ElementaryTypeName","src":"36234:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36141:113:164"},"returnParameters":{"id":99506,"nodeType":"ParameterList","parameters":[],"src":"36289:0:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":99638,"nodeType":"FunctionDefinition","src":"38605:677:164","nodes":[],"body":{"id":99637,"nodeType":"Block","src":"38788:494:164","nodes":[],"statements":[{"assignments":[99603],"declarations":[{"constant":false,"id":99603,"mutability":"mutable","name":"traceAncestorPos","nameLocation":"38863:16:164","nodeType":"VariableDeclaration","scope":99637,"src":"38854:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99602,"nodeType":"UserDefinedTypeName","pathNode":{"id":99601,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"38854:8:164"},"referencedDeclaration":103269,"src":"38854:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":99613,"initialValue":{"condition":{"id":99604,"name":"_global","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99595,"src":"38882:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":99610,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"38941:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":99608,"name":"_pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99591,"src":"38915:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"traceAncestorBounded","nodeType":"MemberAccess","referencedDeclaration":100992,"src":"38915:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position,uint256) pure returns (Position)"}},"id":99611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38915:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"38882:71:164","trueExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99605,"name":"_pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99591,"src":"38892:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"traceAncestor","nodeType":"MemberAccess","referencedDeclaration":100948,"src":"38892:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (Position)"}},"id":99607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38892:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"nodeType":"VariableDeclarationStatement","src":"38854:99:164"},{"expression":{"id":99618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99614,"name":"ancestor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99599,"src":"39109:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":99615,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"39121:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99617,"indexExpression":{"id":99616,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99593,"src":"39131:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39121:17:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"src":"39109:29:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99619,"nodeType":"ExpressionStatement","src":"39109:29:164"},{"body":{"id":99635,"nodeType":"Block","src":"39207:69:164","statements":[{"expression":{"id":99633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99628,"name":"ancestor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99599,"src":"39221:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":99629,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"39233:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99632,"indexExpression":{"expression":{"id":99630,"name":"ancestor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99599,"src":"39243:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"39243:21:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39233:32:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"src":"39221:44:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99634,"nodeType":"ExpressionStatement","src":"39221:44:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99620,"name":"ancestor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99599,"src":"39155:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"39155:18:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"39155:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39155:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99624,"name":"traceAncestorPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99603,"src":"39183:16:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"39183:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39183:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"39155:50:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99636,"nodeType":"WhileStatement","src":"39148:128:164"}]},"documentation":{"id":99588,"nodeType":"StructuredDocumentation","src":"38091:509:164","text":"@notice Finds the trace ancestor of a given position within the DAG.\n @param _pos The position to find the trace ancestor claim of.\n @param _start The index to start searching from.\n @param _global Whether or not to search the entire dag or just within an execution trace subgame. If set to\n `true`, and `_pos` is at or above the split depth, this function will revert.\n @return ancestor_ The ancestor claim that commits to the same trace index as `_pos`."},"implemented":true,"kind":"function","modifiers":[],"name":"_findTraceAncestor","nameLocation":"38614:18:164","parameters":{"id":99596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99591,"mutability":"mutable","name":"_pos","nameLocation":"38651:4:164","nodeType":"VariableDeclaration","scope":99638,"src":"38642:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99590,"nodeType":"UserDefinedTypeName","pathNode":{"id":99589,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"38642:8:164"},"referencedDeclaration":103269,"src":"38642:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99593,"mutability":"mutable","name":"_start","nameLocation":"38673:6:164","nodeType":"VariableDeclaration","scope":99638,"src":"38665:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99592,"name":"uint256","nodeType":"ElementaryTypeName","src":"38665:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99595,"mutability":"mutable","name":"_global","nameLocation":"38694:7:164","nodeType":"VariableDeclaration","scope":99638,"src":"38689:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99594,"name":"bool","nodeType":"ElementaryTypeName","src":"38689:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38632:75:164"},"returnParameters":{"id":99600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99599,"mutability":"mutable","name":"ancestor_","nameLocation":"38773:9:164","nodeType":"VariableDeclaration","scope":99638,"src":"38755:27:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99598,"nodeType":"UserDefinedTypeName","pathNode":{"id":99597,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"38755:9:164"},"referencedDeclaration":100523,"src":"38755:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"src":"38754:29:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":99840,"nodeType":"FunctionDefinition","src":"39797:3468:164","nodes":[],"body":{"id":99839,"nodeType":"Block","src":"39995:3270:164","nodes":[],"statements":[{"assignments":[99657],"declarations":[{"constant":false,"id":99657,"mutability":"mutable","name":"claimIdx","nameLocation":"40050:8:164","nodeType":"VariableDeclaration","scope":99839,"src":"40042:16:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99656,"name":"uint256","nodeType":"ElementaryTypeName","src":"40042:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99659,"initialValue":{"id":99658,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99641,"src":"40061:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40042:25:164"},{"assignments":[99662],"declarations":[{"constant":false,"id":99662,"mutability":"mutable","name":"claim","nameLocation":"40095:5:164","nodeType":"VariableDeclaration","scope":99839,"src":"40077:23:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99661,"nodeType":"UserDefinedTypeName","pathNode":{"id":99660,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"40077:9:164"},"referencedDeclaration":100523,"src":"40077:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99666,"initialValue":{"baseExpression":{"id":99663,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"40103:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99665,"indexExpression":{"id":99664,"name":"claimIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99657,"src":"40113:8:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40103:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"40077:45:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99667,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"40245:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"40245:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"40245:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":99670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40245:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":99671,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"40271:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40245:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99676,"nodeType":"IfStatement","src":"40241:67:164","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":99673,"name":"ClaimAboveSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103177,"src":"40291:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":99674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40291:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99675,"nodeType":"RevertStatement","src":"40284:24:164"}},{"assignments":[99678],"declarations":[{"constant":false,"id":99678,"mutability":"mutable","name":"currentDepth","nameLocation":"40667:12:164","nodeType":"VariableDeclaration","scope":99839,"src":"40659:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99677,"name":"uint256","nodeType":"ElementaryTypeName","src":"40659:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99679,"nodeType":"VariableDeclarationStatement","src":"40659:20:164"},{"assignments":[99682],"declarations":[{"constant":false,"id":99682,"mutability":"mutable","name":"execRootClaim","nameLocation":"40707:13:164","nodeType":"VariableDeclaration","scope":99839,"src":"40689:31:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99681,"nodeType":"UserDefinedTypeName","pathNode":{"id":99680,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"40689:9:164"},"referencedDeclaration":100523,"src":"40689:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99684,"initialValue":{"id":99683,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"40723:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"40689:39:164"},{"body":{"id":99719,"nodeType":"Block","src":"40800:509:164","statements":[{"assignments":[99695],"declarations":[{"constant":false,"id":99695,"mutability":"mutable","name":"parentIndex","nameLocation":"40822:11:164","nodeType":"VariableDeclaration","scope":99719,"src":"40814:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99694,"name":"uint256","nodeType":"ElementaryTypeName","src":"40814:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":99698,"initialValue":{"expression":{"id":99696,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"40836:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parentIndex","nodeType":"MemberAccess","referencedDeclaration":100507,"src":"40836:17:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"40814:39:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99699,"name":"currentDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99678,"src":"41163:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":99700,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"41179:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":99701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41193:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"41179:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41163:31:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99708,"nodeType":"IfStatement","src":"41159:58:164","trueBody":{"expression":{"id":99706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99704,"name":"execRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99682,"src":"41196:13:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99705,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"41212:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"src":"41196:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99707,"nodeType":"ExpressionStatement","src":"41196:21:164"}},{"expression":{"id":99713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99709,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"41232:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":99710,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97785,"src":"41240:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref[] storage ref"}},"id":99712,"indexExpression":{"id":99711,"name":"parentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99695,"src":"41250:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41240:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage","typeString":"struct IFaultDisputeGame.ClaimData storage ref"}},"src":"41232:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99714,"nodeType":"ExpressionStatement","src":"41232:30:164"},{"expression":{"id":99717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99715,"name":"claimIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99657,"src":"41276:8:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":99716,"name":"parentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99695,"src":"41287:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41276:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":99718,"nodeType":"ExpressionStatement","src":"41276:22:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":99693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":99690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99685,"name":"currentDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99678,"src":"40746:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99686,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"40761:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"40761:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":100833,"src":"40761:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint8)"}},"id":99689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40761:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"40746:37:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":99691,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"40745:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":99692,"name":"SPLIT_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97726,"src":"40787:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40745:53:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":99720,"nodeType":"WhileStatement","src":"40738:571:164"},{"assignments":[99723,99726],"declarations":[{"constant":false,"id":99723,"mutability":"mutable","name":"execRootPos","nameLocation":"41586:11:164","nodeType":"VariableDeclaration","scope":99839,"src":"41577:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99722,"nodeType":"UserDefinedTypeName","pathNode":{"id":99721,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"41577:8:164"},"referencedDeclaration":103269,"src":"41577:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99726,"mutability":"mutable","name":"outputPos","nameLocation":"41608:9:164","nodeType":"VariableDeclaration","scope":99839,"src":"41599:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99725,"nodeType":"UserDefinedTypeName","pathNode":{"id":99724,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"41599:8:164"},"referencedDeclaration":103269,"src":"41599:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":99732,"initialValue":{"components":[{"expression":{"id":99727,"name":"execRootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99682,"src":"41622:13:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"41622:22:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"expression":{"id":99729,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"41646:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"41646:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99731,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"41621:40:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Position,Position)"}},"nodeType":"VariableDeclarationStatement","src":"41576:85:164"},{"assignments":[99734],"declarations":[{"constant":false,"id":99734,"mutability":"mutable","name":"wasAttack","nameLocation":"41676:9:164","nodeType":"VariableDeclaration","scope":99839,"src":"41671:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99733,"name":"bool","nodeType":"ElementaryTypeName","src":"41671:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":99744,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99735,"name":"execRootPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99723,"src":"41688:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"parent","nodeType":"MemberAccess","referencedDeclaration":100886,"src":"41688:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (Position)"}},"id":99737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41688:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"41688:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41688:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99740,"name":"outputPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99726,"src":"41718:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"41718:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41718:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"41688:45:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"41671:62:164"},{"condition":{"id":99745,"name":"wasAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99734,"src":"42228:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":99837,"nodeType":"Block","src":"42977:282:164","statements":[{"assignments":[99803],"declarations":[{"constant":false,"id":99803,"mutability":"mutable","name":"disputed","nameLocation":"43009:8:164","nodeType":"VariableDeclaration","scope":99837,"src":"42991:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99802,"nodeType":"UserDefinedTypeName","pathNode":{"id":99801,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"42991:9:164"},"referencedDeclaration":100523,"src":"42991:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99816,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99807,"name":"outputPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99726,"src":"43053:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"43053:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43053:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":99810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43071:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43053:19:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":99805,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"43039:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":99806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"43039:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":99812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43039:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":99813,"name":"claimIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99657,"src":"43075:8:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":99814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"43085:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":99804,"name":"_findTraceAncestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99638,"src":"43020:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":99815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43020:70:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"42991:99:164"},{"expression":{"id":99825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":99817,"name":"startingClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99645,"src":"43105:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99818,"name":"startingPos_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99648,"src":"43121:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99819,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"43104:30:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"expression":{"id":99820,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"43138:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"43138:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"expression":{"id":99822,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"43151:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"43151:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99824,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43137:29:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"src":"43104:62:164","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99826,"nodeType":"ExpressionStatement","src":"43104:62:164"},{"expression":{"id":99835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":99827,"name":"disputedClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99651,"src":"43181:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99828,"name":"disputedPos_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99654,"src":"43197:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99829,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"43180:30:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"expression":{"id":99830,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99803,"src":"43214:8:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"43214:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"expression":{"id":99832,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99803,"src":"43230:8:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"43230:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43213:35:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"src":"43180:68:164","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99836,"nodeType":"ExpressionStatement","src":"43180:68:164"}]},"id":99838,"nodeType":"IfStatement","src":"42224:1035:164","trueBody":{"id":99800,"nodeType":"Block","src":"42239:732:164","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99746,"name":"outputPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99726,"src":"42540:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"indexAtDepth","nodeType":"MemberAccess","referencedDeclaration":100850,"src":"42540:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42540:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":99749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42567:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42540:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":99788,"nodeType":"Block","src":"42794:91:164","statements":[{"expression":{"id":99786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99778,"name":"startingClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99645,"src":"42812:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":99781,"name":"startingOutputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97811,"src":"42840:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRoot_$103283_storage","typeString":"struct OutputRoot storage ref"}},"id":99782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"root","nodeType":"MemberAccess","referencedDeclaration":103280,"src":"42840:23:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":99783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101111,"src":"42840:27:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Hash) pure returns (bytes32)"}},"id":99784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42840:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":99779,"name":"Claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103255,"src":"42829:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Claim_$103255_$","typeString":"type(Claim)"}},"id":99780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"42829:10:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (bytes32) pure returns (Claim)"}},"id":99785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42829:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"src":"42812:58:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":99787,"nodeType":"ExpressionStatement","src":"42812:58:164"}]},"id":99789,"nodeType":"IfStatement","src":"42536:349:164","trueBody":{"id":99777,"nodeType":"Block","src":"42570:218:164","statements":[{"assignments":[99753],"declarations":[{"constant":false,"id":99753,"mutability":"mutable","name":"starting","nameLocation":"42606:8:164","nodeType":"VariableDeclaration","scope":99777,"src":"42588:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"},"typeName":{"id":99752,"nodeType":"UserDefinedTypeName","pathNode":{"id":99751,"name":"ClaimData","nodeType":"IdentifierPath","referencedDeclaration":100523,"src":"42588:9:164"},"referencedDeclaration":100523,"src":"42588:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData"}},"visibility":"internal"}],"id":99766,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99757,"name":"outputPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99726,"src":"42650:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"42650:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42650:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":99760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42668:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42650:19:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":99755,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103269,"src":"42636:8:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Position_$103269_$","typeString":"type(Position)"}},"id":99756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"42636:13:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint128) pure returns (Position)"}},"id":99762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42636:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":99763,"name":"claimIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99657,"src":"42672:8:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":99764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42682:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":99754,"name":"_findTraceAncestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99638,"src":"42617:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$","typeString":"function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)"}},"id":99765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42617:70:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"42588:99:164"},{"expression":{"id":99775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":99767,"name":"startingClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99645,"src":"42706:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99768,"name":"startingPos_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99648,"src":"42722:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99769,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"42705:30:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"expression":{"id":99770,"name":"starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99753,"src":"42739:8:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"42739:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"expression":{"id":99772,"name":"starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99753,"src":"42755:8:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"42755:17:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99774,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"42738:35:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"src":"42705:68:164","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99776,"nodeType":"ExpressionStatement","src":"42705:68:164"}]}},{"expression":{"id":99798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":99790,"name":"disputedClaim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99651,"src":"42899:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99791,"name":"disputedPos_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99654,"src":"42915:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99792,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"42898:30:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"expression":{"id":99793,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"42932:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":100516,"src":"42932:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"expression":{"id":99795,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99662,"src":"42945:5:164","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimData_$100523_storage_ptr","typeString":"struct IFaultDisputeGame.ClaimData storage pointer"}},"id":99796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"position","nodeType":"MemberAccess","referencedDeclaration":100519,"src":"42945:14:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"id":99797,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"42931:29:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position)"}},"src":"42898:62:164","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99799,"nodeType":"ExpressionStatement","src":"42898:62:164"}]}}]},"documentation":{"id":99639,"nodeType":"StructuredDocumentation","src":"39288:504:164","text":"@notice Finds the starting and disputed output root for a given `ClaimData` within the DAG. This\n `ClaimData` must be below the `SPLIT_DEPTH`.\n @param _start The index within `claimData` of the claim to start searching from.\n @return startingClaim_ The starting output root claim.\n @return startingPos_ The starting output root position.\n @return disputedClaim_ The disputed output root claim.\n @return disputedPos_ The disputed output root position."},"implemented":true,"kind":"function","modifiers":[],"name":"_findStartingAndDisputedOutputs","nameLocation":"39806:31:164","parameters":{"id":99642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99641,"mutability":"mutable","name":"_start","nameLocation":"39846:6:164","nodeType":"VariableDeclaration","scope":99840,"src":"39838:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99640,"name":"uint256","nodeType":"ElementaryTypeName","src":"39838:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39837:16:164"},"returnParameters":{"id":99655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99645,"mutability":"mutable","name":"startingClaim_","nameLocation":"39907:14:164","nodeType":"VariableDeclaration","scope":99840,"src":"39901:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99644,"nodeType":"UserDefinedTypeName","pathNode":{"id":99643,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"39901:5:164"},"referencedDeclaration":103255,"src":"39901:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99648,"mutability":"mutable","name":"startingPos_","nameLocation":"39932:12:164","nodeType":"VariableDeclaration","scope":99840,"src":"39923:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99647,"nodeType":"UserDefinedTypeName","pathNode":{"id":99646,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"39923:8:164"},"referencedDeclaration":103269,"src":"39923:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99651,"mutability":"mutable","name":"disputedClaim_","nameLocation":"39952:14:164","nodeType":"VariableDeclaration","scope":99840,"src":"39946:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99650,"nodeType":"UserDefinedTypeName","pathNode":{"id":99649,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"39946:5:164"},"referencedDeclaration":103255,"src":"39946:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99654,"mutability":"mutable","name":"disputedPos_","nameLocation":"39977:12:164","nodeType":"VariableDeclaration","scope":99840,"src":"39968:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99653,"nodeType":"UserDefinedTypeName","pathNode":{"id":99652,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"39968:8:164"},"referencedDeclaration":103269,"src":"39968:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"src":"39900:90:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":99875,"nodeType":"FunctionDefinition","src":"43519:319:164","nodes":[],"body":{"id":99874,"nodeType":"Block","src":"43602:236:164","nodes":[],"statements":[{"assignments":[99851,99854,99857,99860],"declarations":[{"constant":false,"id":99851,"mutability":"mutable","name":"starting","nameLocation":"43619:8:164","nodeType":"VariableDeclaration","scope":99874,"src":"43613:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99850,"nodeType":"UserDefinedTypeName","pathNode":{"id":99849,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"43613:5:164"},"referencedDeclaration":103255,"src":"43613:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99854,"mutability":"mutable","name":"startingPos","nameLocation":"43638:11:164","nodeType":"VariableDeclaration","scope":99874,"src":"43629:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99853,"nodeType":"UserDefinedTypeName","pathNode":{"id":99852,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"43629:8:164"},"referencedDeclaration":103269,"src":"43629:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99857,"mutability":"mutable","name":"disputed","nameLocation":"43657:8:164","nodeType":"VariableDeclaration","scope":99874,"src":"43651:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99856,"nodeType":"UserDefinedTypeName","pathNode":{"id":99855,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"43651:5:164"},"referencedDeclaration":103255,"src":"43651:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99860,"mutability":"mutable","name":"disputedPos","nameLocation":"43676:11:164","nodeType":"VariableDeclaration","scope":99874,"src":"43667:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99859,"nodeType":"UserDefinedTypeName","pathNode":{"id":99858,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"43667:8:164"},"referencedDeclaration":103269,"src":"43667:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"id":99864,"initialValue":{"arguments":[{"id":99862,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99843,"src":"43735:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":99861,"name":"_findStartingAndDisputedOutputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99840,"src":"43703:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (uint256) view returns (Claim,Position,Claim,Position)"}},"id":99863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43703:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$","typeString":"tuple(Claim,Position,Claim,Position)"}},"nodeType":"VariableDeclarationStatement","src":"43612:135:164"},{"expression":{"id":99872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99865,"name":"uuid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99847,"src":"43757:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":99867,"name":"starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99851,"src":"43786:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99868,"name":"startingPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99854,"src":"43796:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":99869,"name":"disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99857,"src":"43809:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99870,"name":"disputedPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99860,"src":"43819:11:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}],"id":99866,"name":"_computeLocalContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99926,"src":"43765:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (Claim,Position,Claim,Position) pure returns (Hash)"}},"id":99871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43765:66:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"43757:74:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":99873,"nodeType":"ExpressionStatement","src":"43757:74:164"}]},"documentation":{"id":99841,"nodeType":"StructuredDocumentation","src":"43271:243:164","text":"@notice Finds the local context hash for a given claim index that is present in an execution trace subgame.\n @param _claimIndex The index of the claim to find the local context hash for.\n @return uuid_ The local context hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_findLocalContext","nameLocation":"43528:17:164","parameters":{"id":99844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99843,"mutability":"mutable","name":"_claimIndex","nameLocation":"43554:11:164","nodeType":"VariableDeclaration","scope":99875,"src":"43546:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99842,"name":"uint256","nodeType":"ElementaryTypeName","src":"43546:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43545:21:164"},"returnParameters":{"id":99848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99847,"mutability":"mutable","name":"uuid_","nameLocation":"43595:5:164","nodeType":"VariableDeclaration","scope":99875,"src":"43590:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":99846,"nodeType":"UserDefinedTypeName","pathNode":{"id":99845,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"43590:4:164"},"referencedDeclaration":103253,"src":"43590:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"43589:12:164"},"scope":99927,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":99926,"nodeType":"FunctionDefinition","src":"44205:616:164","nodes":[],"body":{"id":99925,"nodeType":"Block","src":"44416:405:164","nodes":[],"statements":[{"expression":{"id":99923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":99894,"name":"uuid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99892,"src":"44614:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":99899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":99895,"name":"_startingPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99882,"src":"44622:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"id":99896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101017,"src":"44622:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$","typeString":"function (Position) pure returns (uint128)"}},"id":99897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44622:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":99898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44644:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44622:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"arguments":[{"id":99915,"name":"_starting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99879,"src":"44763:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99916,"name":"_startingPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99882,"src":"44774:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},{"id":99917,"name":"_disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99885,"src":"44788:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99918,"name":"_disputedPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99888,"src":"44799:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}],"expression":{"id":99913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44752:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":99914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"44752:10:164","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":99919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44752:60:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":99912,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44742:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":99920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44742:71:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":99910,"name":"Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103253,"src":"44732:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Hash_$103253_$","typeString":"type(Hash)"}},"id":99911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"44732:9:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (bytes32) pure returns (Hash)"}},"id":99921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44732:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":99922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"44622:192:164","trueExpression":{"arguments":[{"arguments":[{"arguments":[{"id":99905,"name":"_disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99885,"src":"44691:9:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":99906,"name":"_disputedPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99888,"src":"44702:12:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}],"expression":{"id":99903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44680:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":99904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"44680:10:164","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":99907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44680:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":99902,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44670:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":99908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44670:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":99900,"name":"Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103253,"src":"44660:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Hash_$103253_$","typeString":"type(Hash)"}},"id":99901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"44660:9:164","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (bytes32) pure returns (Hash)"}},"id":99909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44660:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"44614:200:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":99924,"nodeType":"ExpressionStatement","src":"44614:200:164"}]},"documentation":{"id":99876,"nodeType":"StructuredDocumentation","src":"43844:356:164","text":"@notice Computes the local context hash for a set of starting/disputed claim values and positions.\n @param _starting The starting claim.\n @param _startingPos The starting claim's position.\n @param _disputed The disputed claim.\n @param _disputedPos The disputed claim's position.\n @return uuid_ The local context hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_computeLocalContext","nameLocation":"44214:20:164","parameters":{"id":99889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99879,"mutability":"mutable","name":"_starting","nameLocation":"44250:9:164","nodeType":"VariableDeclaration","scope":99926,"src":"44244:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99878,"nodeType":"UserDefinedTypeName","pathNode":{"id":99877,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"44244:5:164"},"referencedDeclaration":103255,"src":"44244:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99882,"mutability":"mutable","name":"_startingPos","nameLocation":"44278:12:164","nodeType":"VariableDeclaration","scope":99926,"src":"44269:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99881,"nodeType":"UserDefinedTypeName","pathNode":{"id":99880,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"44269:8:164"},"referencedDeclaration":103269,"src":"44269:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":99885,"mutability":"mutable","name":"_disputed","nameLocation":"44306:9:164","nodeType":"VariableDeclaration","scope":99926,"src":"44300:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":99884,"nodeType":"UserDefinedTypeName","pathNode":{"id":99883,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"44300:5:164"},"referencedDeclaration":103255,"src":"44300:5:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":99888,"mutability":"mutable","name":"_disputedPos","nameLocation":"44334:12:164","nodeType":"VariableDeclaration","scope":99926,"src":"44325:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"},"typeName":{"id":99887,"nodeType":"UserDefinedTypeName","pathNode":{"id":99886,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":103269,"src":"44325:8:164"},"referencedDeclaration":103269,"src":"44325:8:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$103269","typeString":"Position"}},"visibility":"internal"}],"src":"44234:118:164"},"returnParameters":{"id":99893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99892,"mutability":"mutable","name":"uuid_","nameLocation":"44405:5:164","nodeType":"VariableDeclaration","scope":99926,"src":"44400:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":99891,"nodeType":"UserDefinedTypeName","pathNode":{"id":99890,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"44400:4:164"},"referencedDeclaration":103253,"src":"44400:4:164","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"44399:12:164"},"scope":99927,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":97711,"name":"IFaultDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100608,"src":"1025:17:164"},"id":97712,"nodeType":"InheritanceSpecifier","src":"1025:17:164"},{"baseName":{"id":97713,"name":"Clone","nodeType":"IdentifierPath","referencedDeclaration":60963,"src":"1044:5:164"},"id":97714,"nodeType":"InheritanceSpecifier","src":"1044:5:164"},{"baseName":{"id":97715,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1051:7:164"},"id":97716,"nodeType":"InheritanceSpecifier","src":"1051:7:164"}],"canonicalName":"FaultDisputeGame","contractDependencies":[],"contractKind":"contract","documentation":{"id":97710,"nodeType":"StructuredDocumentation","src":"900:96:164","text":"@title FaultDisputeGame\n @notice An implementation of the `IFaultDisputeGame` interface."},"fullyImplemented":true,"linearizedBaseContracts":[99927,109417,60963,100608,100327,100616],"name":"FaultDisputeGame","nameLocation":"1005:16:164","scope":99928,"usedErrors":[103117,103120,103123,103126,103129,103135,103138,103144,103147,103150,103153,103156,103159,103162,103168,103171,103174,103177,103180,103183,103186,103189,103192]}],"license":"MIT"},"id":164} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/GasPriceOracle.json b/packages/sdk/src/forge-artifacts/GasPriceOracle.json new file mode 100644 index 000000000000..2a5743a1323e --- /dev/null +++ b/packages/sdk/src/forge-artifacts/GasPriceOracle.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"gasPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getL1Fee","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getL1GasUsed","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isEcotone","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"l1BaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610fb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b6006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b6109036105c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a","sourceMap":"1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b6006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b6109036105c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a","sourceMap":"1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2951:202;;;:::i;:::-;;;160:25:357;;;148:2;133:18;2951:202:144;;;;;;;;2115:338;;;:::i;:::-;;1249:36;;1284:1;1249:36;;4561:82;1284:1;4561:82;;1835:196;;;;;;:::i;:::-;;:::i;1486:21::-;;;;;;;;;;;;1535:14:357;;1528:22;1510:41;;1498:2;1483:18;1486:21:144;1370:187:357;3568:124:144;;;:::i;1355:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4267:141::-;;;:::i;:::-;;;2397:10:357;2385:23;;;2367:42;;2355:2;2340:18;4267:141:144;2223:192:357;2746:86:144;2812:13;2746:86;;4022:133;;;:::i;4975:280::-;;;;;;:::i;:::-;;:::i;3268:196::-;;;:::i;3790:130::-;;;:::i;2951:202::-;2992:7;3020:9;;;;3019:10;3011:63;;;;;;;2622:2:357;3011:63:144;;;2604:21:357;2661:2;2641:18;;;2634:30;2700:34;2680:18;;;2673:62;2771:10;2751:18;;;2744:38;2799:19;;3011:63:144;;;;;;;;;1455:42:199;3091:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3084:62;;2951:202;:::o;2115:338::-;1455:42:199;2191:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2177:73;;:10;:73;;;2156:185;;;;;;;3538:2:357;2156:185:144;;;3520:21:357;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;3687:34;3667:18;;;3660:62;3759:3;3738:19;;;3731:32;3780:19;;2156:185:144;3336:469:357;2156:185:144;2359:9;;;;:18;2351:69;;;;;;;4012:2:357;2351:69:144;;;3994:21:357;4051:2;4031:18;;;4024:30;4090:34;4070:18;;;4063:62;4161:8;4141:18;;;4134:36;4187:19;;2351:69:144;3810:402:357;2351:69:144;2430:9;:16;;;;2442:4;2430:16;;;2115:338::o;1835:196::-;1896:7;1919:9;;;;1915:70;;;1951:23;1968:5;1951:16;:23::i;:::-;1944:30;1835:196;-1:-1:-1;;1835:196:144:o;1915:70::-;2001:23;2018:5;2001:16;:23::i;3568:124::-;3610:7;1455:42:199;3636:47:144;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:141;4317:6;1455:42:199;4342:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4022:133::-;4068:6;1455:42:199;4093:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4975:280;5038:7;5057:17;5077:22;5093:5;5077:15;:22::i;:::-;5113:9;;5057:42;;-1:-1:-1;5113:9:144;;5109:56;;;5145:9;4975:280;-1:-1:-1;;4975:280:144:o;5109:56::-;1455:42:199;5193:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5181:67;;:9;:67;:::i;:::-;5174:74;4975:280;-1:-1:-1;;;4975:280:144:o;3268:196::-;3307:7;3335:9;;;;3334:10;3326:61;;;;;;;5026:2:357;3326:61:144;;;5008:21:357;5065:2;5045:18;;;5038:30;5104:34;5084:18;;;5077:62;5175:8;5155:18;;;5148:36;5201:19;;3326:61:144;4824:402:357;3326:61:144;1455:42:199;3404:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:130;3834:7;1455:42:199;3860:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6015:393;6084:7;6103:17;6123:22;6139:5;6123:15;:22::i;:::-;6103:42;;6155:21;6202:11;:9;:11::i;:::-;6179:15;:13;:15::i;:::-;:20;;6197:2;6179:20;:::i;:::-;:34;;;;;;:::i;:::-;6155:58;;6223:25;6273:13;:11;:13::i;:::-;6251:19;:17;:19::i;:::-;:35;;;;;;:::i;:::-;6223:63;-1:-1:-1;6296:11:144;6323:33;6223:63;6323:13;:33;:::i;:::-;6310:47;;:9;:47;:::i;:::-;6296:61;-1:-1:-1;6386:14:144;1284:1;6386:2;:14;:::i;:::-;6381:19;;:2;:19;:::i;:::-;6374:27;;:3;:27;:::i;:::-;6367:34;6015:393;-1:-1:-1;;;;;;6015:393:144:o;5468:351::-;5537:7;5556:17;5576:22;5592:5;5576:15;:22::i;:::-;5556:42;;5608:11;1455:42:199;5720:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5694:11;:9;:11::i;:::-;1455:42:199;5635:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5623:67;;:9;:67;:::i;:::-;5622:83;;;;:::i;:::-;:151;;;;:::i;:::-;5608:165;-1:-1:-1;5797:14:144;1284:1;5797:2;:14;:::i;:::-;5790:22;;:3;:22;:::i;:::-;5783:29;5468:351;-1:-1:-1;;;;5468:351:144:o;6610:366::-;6741:12;;6678:7;;;;;6763:173;6787:6;6783:1;:10;6763:173;;;6818:5;6824:1;6818:8;;;;;;;;:::i;:::-;;;;;;;6830:1;6818:13;6814:112;;6851:10;6860:1;6851:10;;:::i;:::-;;;6814:112;;;6900:11;6909:2;6900:11;;:::i;:::-;;;6814:112;6795:3;;;;:::i;:::-;;;;6763:173;;;-1:-1:-1;6952:17:144;:5;6961:7;6952:17;:::i;196:184:357:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:980;453:6;506:2;494:9;485:7;481:23;477:32;474:52;;;522:1;519;512:12;474:52;562:9;549:23;591:18;632:2;624:6;621:14;618:34;;;648:1;645;638:12;618:34;686:6;675:9;671:22;661:32;;731:7;724:4;720:2;716:13;712:27;702:55;;753:1;750;743:12;702:55;789:2;776:16;811:2;807;804:10;801:36;;;817:18;;:::i;:::-;951:2;945:9;1013:4;1005:13;;856:66;1001:22;;;1025:2;997:31;993:40;981:53;;;1049:18;;;1069:22;;;1046:46;1043:72;;;1095:18;;:::i;:::-;1135:10;1131:2;1124:22;1170:2;1162:6;1155:18;1210:7;1205:2;1200;1196;1192:11;1188:20;1185:33;1182:53;;;1231:1;1228;1221:12;1182:53;1287:2;1282;1278;1274:11;1269:2;1261:6;1257:15;1244:46;1332:1;1310:15;;;1327:2;1306:24;1299:35;;;;-1:-1:-1;1314:6:357;385:980;-1:-1:-1;;;;;385:980:357:o;1562:656::-;1674:4;1703:2;1732;1721:9;1714:21;1764:6;1758:13;1807:6;1802:2;1791:9;1787:18;1780:34;1832:1;1842:140;1856:6;1853:1;1850:13;1842:140;;;1951:14;;;1947:23;;1941:30;1917:17;;;1936:2;1913:26;1906:66;1871:10;;1842:140;;;2000:6;1997:1;1994:13;1991:91;;;2070:1;2065:2;2056:6;2045:9;2041:22;2037:31;2030:42;1991:91;-1:-1:-1;2134:2:357;2122:15;2139:66;2118:88;2103:104;;;;2209:2;2099:113;;1562:656;-1:-1:-1;;;1562:656:357:o;2829:184::-;2899:6;2952:2;2940:9;2931:7;2927:23;2923:32;2920:52;;;2968:1;2965;2958:12;2920:52;-1:-1:-1;2991:16:357;;2829:184;-1:-1:-1;2829:184:357:o;3018:313::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3189:9;3183:16;3239:42;3232:5;3228:54;3221:5;3218:65;3208:93;;3297:1;3294;3287:12;4217:280;4286:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:52;;;4355:1;4352;4345:12;4307:52;4387:9;4381:16;4437:10;4430:5;4426:22;4419:5;4416:33;4406:61;;4463:1;4460;4453:12;4502:184;4554:77;4551:1;4544:88;4651:4;4648:1;4641:15;4675:4;4672:1;4665:15;4691:128;4731:3;4762:1;4758:6;4755:1;4752:13;4749:39;;;4768:18;;:::i;:::-;-1:-1:-1;4804:9:357;;4691:128::o;5231:262::-;5270:7;5302:10;5339:2;5336:1;5332:10;5369:2;5366:1;5362:10;5425:3;5421:2;5417:12;5412:3;5409:21;5402:3;5395:11;5388:19;5384:47;5381:73;;;5434:18;;:::i;:::-;5474:13;;5231:262;-1:-1:-1;;;;5231:262:357:o;5498:228::-;5538:7;5664:1;5596:66;5592:74;5589:1;5586:81;5581:1;5574:9;5567:17;5563:105;5560:131;;;5671:18;;:::i;:::-;-1:-1:-1;5711:9:357;;5498:228::o;5731:482::-;5820:1;5863:5;5820:1;5877:330;5898:7;5888:8;5885:21;5877:330;;;6017:4;5949:66;5945:77;5939:4;5936:87;5933:113;;;6026:18;;:::i;:::-;6076:7;6066:8;6062:22;6059:55;;;6096:16;;;;6059:55;6175:22;;;;6135:15;;;;5877:330;;;5881:3;5731:482;;;;;:::o;6218:866::-;6267:5;6297:8;6287:80;;-1:-1:-1;6338:1:357;6352:5;;6287:80;6386:4;6376:76;;-1:-1:-1;6423:1:357;6437:5;;6376:76;6468:4;6486:1;6481:59;;;;6554:1;6549:130;;;;6461:218;;6481:59;6511:1;6502:10;;6525:5;;;6549:130;6586:3;6576:8;6573:17;6570:43;;;6593:18;;:::i;:::-;-1:-1:-1;;6649:1:357;6635:16;;6664:5;;6461:218;;6763:2;6753:8;6750:16;6744:3;6738:4;6735:13;6731:36;6725:2;6715:8;6712:16;6707:2;6701:4;6698:12;6694:35;6691:77;6688:159;;;-1:-1:-1;6800:19:357;;;6832:5;;6688:159;6879:34;6904:8;6898:4;6879:34;:::i;:::-;7009:6;6941:66;6937:79;6928:7;6925:92;6922:118;;;7020:18;;:::i;:::-;7058:20;;6218:866;-1:-1:-1;;;6218:866:357:o;7089:131::-;7149:5;7178:36;7205:8;7199:4;7178:36;:::i;7225:274::-;7265:1;7291;7281:189;;7326:77;7323:1;7316:88;7427:4;7424:1;7417:15;7455:4;7452:1;7445:15;7281:189;-1:-1:-1;7484:9:357;;7225:274::o;7504:184::-;7556:77;7553:1;7546:88;7653:4;7650:1;7643:15;7677:4;7674:1;7667:15;7693:195;7732:3;7763:66;7756:5;7753:77;7750:103;;7833:18;;:::i;:::-;-1:-1:-1;7880:1:357;7869:13;;7693:195::o","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","baseFee()":"6ef25c3a","baseFeeScalar()":"c5985918","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","decimals()":"313ce567","gasPrice()":"fe173b97","getL1Fee(bytes)":"49948e0e","getL1GasUsed(bytes)":"de26c4a1","isEcotone()":"4ef6e224","l1BaseFee()":"519b4bd3","overhead()":"0c18c162","scalar()":"f45e65d8","setEcotone()":"22b90ab3","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1Fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1GasUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEcotone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000000F\",\"kind\":\"dev\",\"methods\":{\"baseFee()\":{\"returns\":{\"_0\":\"Current L2 base fee.\"}},\"baseFeeScalar()\":{\"returns\":{\"_0\":\"Current base fee scalar.\"}},\"blobBaseFee()\":{\"returns\":{\"_0\":\"Current blob base fee.\"}},\"blobBaseFeeScalar()\":{\"returns\":{\"_0\":\"Current blob base fee scalar.\"}},\"decimals()\":{\"custom:legacy\":\"@notice Retrieves the number of decimals used in the scalar.\",\"returns\":{\"_0\":\"Number of decimals used in the scalar.\"}},\"gasPrice()\":{\"returns\":{\"_0\":\"Current L2 gas price (base fee).\"}},\"getL1Fee(bytes)\":{\"params\":{\"_data\":\"Unsigned fully RLP-encoded transaction to get the L1 fee for.\"},\"returns\":{\"_0\":\"L1 fee that should be paid for the tx\"}},\"getL1GasUsed(bytes)\":{\"params\":{\"_data\":\"Unsigned fully RLP-encoded transaction to get the L1 gas for.\"},\"returns\":{\"_0\":\"Amount of L1 gas used to publish the transaction.\"}},\"l1BaseFee()\":{\"returns\":{\"_0\":\"Latest known L1 base fee.\"}},\"overhead()\":{\"custom:legacy\":\"@notice Retrieves the current fee overhead.\",\"returns\":{\"_0\":\"Current fee overhead.\"}},\"scalar()\":{\"custom:legacy\":\"@notice Retrieves the current fee scalar.\",\"returns\":{\"_0\":\"Current fee scalar.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"GasPriceOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DECIMALS()\":{\"notice\":\"Number of decimals used in the scalar.\"},\"baseFee()\":{\"notice\":\"Retrieves the current base fee.\"},\"baseFeeScalar()\":{\"notice\":\"Retrieves the current base fee scalar.\"},\"blobBaseFee()\":{\"notice\":\"Retrieves the current blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"Retrieves the current blob base fee scalar.\"},\"gasPrice()\":{\"notice\":\"Retrieves the current gas price (base fee).\"},\"getL1Fee(bytes)\":{\"notice\":\"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters.\"},\"getL1GasUsed(bytes)\":{\"notice\":\"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature.\"},\"isEcotone()\":{\"notice\":\"Indicates whether the network has gone through the Ecotone upgrade.\"},\"l1BaseFee()\":{\"notice\":\"Retrieves the latest known L1 base fee.\"},\"setEcotone()\":{\"notice\":\"Set chain to be Ecotone chain (callable by depositor account)\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"This contract maintains the variables responsible for computing the L1 portion of the total fee charged on L2. Before Bedrock, this contract held variables in state that were read during the state transition function to compute the L1 portion of the transaction fee. After Bedrock, this contract now simply proxies the L1Block contract, which has the values used to compute the L1 portion of the fee in its state. The contract exposes an API that is useful for knowing how large the L1 portion of the transaction fee will be. The following events were deprecated with Bedrock: - event OverheadUpdated(uint256 overhead); - event ScalarUpdated(uint256 scalar); - event DecimalsUpdated(uint256 decimals);\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/GasPriceOracle.sol\":\"GasPriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/GasPriceOracle.sol\":{\"keccak256\":\"0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7\",\"dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getL1Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getL1GasUsed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isEcotone","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1BaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"baseFee()":{"returns":{"_0":"Current L2 base fee."}},"baseFeeScalar()":{"returns":{"_0":"Current base fee scalar."}},"blobBaseFee()":{"returns":{"_0":"Current blob base fee."}},"blobBaseFeeScalar()":{"returns":{"_0":"Current blob base fee scalar."}},"decimals()":{"custom:legacy":"@notice Retrieves the number of decimals used in the scalar.","returns":{"_0":"Number of decimals used in the scalar."}},"gasPrice()":{"returns":{"_0":"Current L2 gas price (base fee)."}},"getL1Fee(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 fee for."},"returns":{"_0":"L1 fee that should be paid for the tx"}},"getL1GasUsed(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 gas for."},"returns":{"_0":"Amount of L1 gas used to publish the transaction."}},"l1BaseFee()":{"returns":{"_0":"Latest known L1 base fee."}},"overhead()":{"custom:legacy":"@notice Retrieves the current fee overhead.","returns":{"_0":"Current fee overhead."}},"scalar()":{"custom:legacy":"@notice Retrieves the current fee scalar.","returns":{"_0":"Current fee scalar."}}},"version":1},"userdoc":{"kind":"user","methods":{"DECIMALS()":{"notice":"Number of decimals used in the scalar."},"baseFee()":{"notice":"Retrieves the current base fee."},"baseFeeScalar()":{"notice":"Retrieves the current base fee scalar."},"blobBaseFee()":{"notice":"Retrieves the current blob base fee."},"blobBaseFeeScalar()":{"notice":"Retrieves the current blob base fee scalar."},"gasPrice()":{"notice":"Retrieves the current gas price (base fee)."},"getL1Fee(bytes)":{"notice":"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters."},"getL1GasUsed(bytes)":{"notice":"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature."},"isEcotone()":{"notice":"Indicates whether the network has gone through the Ecotone upgrade."},"l1BaseFee()":{"notice":"Retrieves the latest known L1 base fee."},"setEcotone()":{"notice":"Set chain to be Ecotone chain (callable by depositor account)"},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/GasPriceOracle.sol":"GasPriceOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/GasPriceOracle.sol":{"keccak256":"0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1","urls":["bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7","dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":89850,"contract":"src/L2/GasPriceOracle.sol:GasPriceOracle","label":"isEcotone","offset":0,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"DECIMALS()":{"notice":"Number of decimals used in the scalar."},"baseFee()":{"notice":"Retrieves the current base fee."},"baseFeeScalar()":{"notice":"Retrieves the current base fee scalar."},"blobBaseFee()":{"notice":"Retrieves the current blob base fee."},"blobBaseFeeScalar()":{"notice":"Retrieves the current blob base fee scalar."},"gasPrice()":{"notice":"Retrieves the current gas price (base fee)."},"getL1Fee(bytes)":{"notice":"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters."},"getL1GasUsed(bytes)":{"notice":"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature."},"isEcotone()":{"notice":"Indicates whether the network has gone through the Ecotone upgrade."},"l1BaseFee()":{"notice":"Retrieves the latest known L1 base fee."},"setEcotone()":{"notice":"Set chain to be Ecotone chain (callable by depositor account)"},"version()":{"notice":"Semantic version."}},"notice":"This contract maintains the variables responsible for computing the L1 portion of the total fee charged on L2. Before Bedrock, this contract held variables in state that were read during the state transition function to compute the L1 portion of the transaction fee. After Bedrock, this contract now simply proxies the L1Block contract, which has the values used to compute the L1 portion of the fee in its state. The contract exposes an API that is useful for knowing how large the L1 portion of the transaction fee will be. The following events were deprecated with Bedrock: - event OverheadUpdated(uint256 overhead); - event ScalarUpdated(uint256 scalar); - event DecimalsUpdated(uint256 decimals);"},"devdoc":{"version":1,"kind":"dev","methods":{"baseFee()":{"returns":{"_0":"Current L2 base fee."}},"baseFeeScalar()":{"returns":{"_0":"Current base fee scalar."}},"blobBaseFee()":{"returns":{"_0":"Current blob base fee."}},"blobBaseFeeScalar()":{"returns":{"_0":"Current blob base fee scalar."}},"decimals()":{"returns":{"_0":"Number of decimals used in the scalar."}},"gasPrice()":{"returns":{"_0":"Current L2 gas price (base fee)."}},"getL1Fee(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 fee for."},"returns":{"_0":"L1 fee that should be paid for the tx"}},"getL1GasUsed(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 gas for."},"returns":{"_0":"Amount of L1 gas used to publish the transaction."}},"l1BaseFee()":{"returns":{"_0":"Latest known L1 base fee."}},"overhead()":{"returns":{"_0":"Current fee overhead."}},"scalar()":{"returns":{"_0":"Current fee scalar."}}},"title":"GasPriceOracle"},"ast":{"absolutePath":"src/L2/GasPriceOracle.sol","id":90203,"exportedSymbols":{"GasPriceOracle":[90202],"ISemver":[109417],"L1Block":[90318],"Predeploys":[104124]},"nodeType":"SourceUnit","src":"32:6947:144","nodes":[{"id":89830,"nodeType":"PragmaDirective","src":"32:23:144","nodes":[],"literals":["solidity","0.8",".15"]},{"id":89832,"nodeType":"ImportDirective","src":"57:52:144","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":89831,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"66:7:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89834,"nodeType":"ImportDirective","src":"110:58:144","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":89833,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"119:10:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89836,"nodeType":"ImportDirective","src":"169:45:144","nodes":[],"absolutePath":"src/L2/L1Block.sol","file":"src/L2/L1Block.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":90319,"symbolAliases":[{"foreign":{"id":89835,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"178:7:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90202,"nodeType":"ContractDefinition","src":"1153:5825:144","nodes":[{"id":89843,"nodeType":"VariableDeclaration","src":"1249:36:144","nodes":[],"constant":true,"documentation":{"id":89840,"nodeType":"StructuredDocumentation","src":"1194:50:144","text":"@notice Number of decimals used in the scalar."},"functionSelector":"2e0f2625","mutability":"constant","name":"DECIMALS","nameLocation":"1273:8:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36","id":89842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:1:144","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"public"},{"id":89847,"nodeType":"VariableDeclaration","src":"1355:40:144","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":89844,"nodeType":"StructuredDocumentation","src":"1292:58:144","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1378:7:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":89845,"name":"string","nodeType":"ElementaryTypeName","src":"1355:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":89846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1388:7:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":89850,"nodeType":"VariableDeclaration","src":"1486:21:144","nodes":[],"constant":false,"documentation":{"id":89848,"nodeType":"StructuredDocumentation","src":"1402:79:144","text":"@notice Indicates whether the network has gone through the Ecotone upgrade."},"functionSelector":"4ef6e224","mutability":"mutable","name":"isEcotone","nameLocation":"1498:9:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89849,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89870,"nodeType":"FunctionDefinition","src":"1835:196:144","nodes":[],"body":{"id":89869,"nodeType":"Block","src":"1905:126:144","nodes":[],"statements":[{"condition":{"id":89858,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"1919:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89864,"nodeType":"IfStatement","src":"1915:70:144","trueBody":{"id":89863,"nodeType":"Block","src":"1930:55:144","statements":[{"expression":{"arguments":[{"id":89860,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89853,"src":"1968:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":89859,"name":"_getL1FeeEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90148,"src":"1951:16:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) view returns (uint256)"}},"id":89861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1951:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89857,"id":89862,"nodeType":"Return","src":"1944:30:144"}]}},{"expression":{"arguments":[{"id":89866,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89853,"src":"2018:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":89865,"name":"_getL1FeeBedrock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90097,"src":"2001:16:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) view returns (uint256)"}},"id":89867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2001:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89857,"id":89868,"nodeType":"Return","src":"1994:30:144"}]},"documentation":{"id":89851,"nodeType":"StructuredDocumentation","src":"1514:316:144","text":"@notice Computes the L1 portion of the fee based on the size of the rlp encoded input\n transaction, the current L1 base fee, and the various dynamic parameters.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx"},"functionSelector":"49948e0e","implemented":true,"kind":"function","modifiers":[],"name":"getL1Fee","nameLocation":"1844:8:144","parameters":{"id":89854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89853,"mutability":"mutable","name":"_data","nameLocation":"1866:5:144","nodeType":"VariableDeclaration","scope":89870,"src":"1853:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89852,"name":"bytes","nodeType":"ElementaryTypeName","src":"1853:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1852:20:144"},"returnParameters":{"id":89857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89870,"src":"1896:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89855,"name":"uint256","nodeType":"ElementaryTypeName","src":"1896:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1895:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":89899,"nodeType":"FunctionDefinition","src":"2115:338:144","nodes":[],"body":{"id":89898,"nodeType":"Block","src":"2146:307:144","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":89883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":89875,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2177:3:144","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2177:10:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89878,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2199:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"2199:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89877,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"2191:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2191:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEPOSITOR_ACCOUNT","nodeType":"MemberAccess","referencedDeclaration":90213,"src":"2191:57:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":89882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2191:59:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2177:73:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e2073657420697345636f746f6e6520666c6167","id":89884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2264:67:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c","typeString":"literal_string \"GasPriceOracle: only the depositor account can set isEcotone flag\""},"value":"GasPriceOracle: only the depositor account can set isEcotone flag"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c","typeString":"literal_string \"GasPriceOracle: only the depositor account can set isEcotone flag\""}],"id":89874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2156:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2156:185:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89886,"nodeType":"ExpressionStatement","src":"2156:185:144"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":89890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89888,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"2359:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":89889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2372:5:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2359:18:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a2045636f746f6e6520616c726561647920616374697665","id":89891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2379:40:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39","typeString":"literal_string \"GasPriceOracle: Ecotone already active\""},"value":"GasPriceOracle: Ecotone already active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39","typeString":"literal_string \"GasPriceOracle: Ecotone already active\""}],"id":89887,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2351:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2351:69:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89893,"nodeType":"ExpressionStatement","src":"2351:69:144"},{"expression":{"id":89896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89894,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"2430:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2442:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2430:16:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89897,"nodeType":"ExpressionStatement","src":"2430:16:144"}]},"documentation":{"id":89871,"nodeType":"StructuredDocumentation","src":"2037:73:144","text":"@notice Set chain to be Ecotone chain (callable by depositor account)"},"functionSelector":"22b90ab3","implemented":true,"kind":"function","modifiers":[],"name":"setEcotone","nameLocation":"2124:10:144","parameters":{"id":89872,"nodeType":"ParameterList","parameters":[],"src":"2134:2:144"},"returnParameters":{"id":89873,"nodeType":"ParameterList","parameters":[],"src":"2146:0:144"},"scope":90202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89909,"nodeType":"FunctionDefinition","src":"2568:87:144","nodes":[],"body":{"id":89908,"nodeType":"Block","src":"2618:37:144","nodes":[],"statements":[{"expression":{"expression":{"id":89905,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2635:5:144","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":89906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","src":"2635:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89904,"id":89907,"nodeType":"Return","src":"2628:20:144"}]},"documentation":{"id":89900,"nodeType":"StructuredDocumentation","src":"2459:104:144","text":"@notice Retrieves the current gas price (base fee).\n @return Current L2 gas price (base fee)."},"functionSelector":"fe173b97","implemented":true,"kind":"function","modifiers":[],"name":"gasPrice","nameLocation":"2577:8:144","parameters":{"id":89901,"nodeType":"ParameterList","parameters":[],"src":"2585:2:144"},"returnParameters":{"id":89904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89909,"src":"2609:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89919,"nodeType":"FunctionDefinition","src":"2746:86:144","nodes":[],"body":{"id":89918,"nodeType":"Block","src":"2795:37:144","nodes":[],"statements":[{"expression":{"expression":{"id":89915,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2812:5:144","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":89916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","src":"2812:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89914,"id":89917,"nodeType":"Return","src":"2805:20:144"}]},"documentation":{"id":89910,"nodeType":"StructuredDocumentation","src":"2661:80:144","text":"@notice Retrieves the current base fee.\n @return Current L2 base fee."},"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"2755:7:144","parameters":{"id":89911,"nodeType":"ParameterList","parameters":[],"src":"2762:2:144"},"returnParameters":{"id":89914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89919,"src":"2786:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89912,"name":"uint256","nodeType":"ElementaryTypeName","src":"2786:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2785:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89939,"nodeType":"FunctionDefinition","src":"2951:202:144","nodes":[],"body":{"id":89938,"nodeType":"Block","src":"3001:152:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":89927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3019:10:144","subExpression":{"id":89926,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"3020:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a206f7665726865616428292069732064657072656361746564","id":89928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3031:42:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf","typeString":"literal_string \"GasPriceOracle: overhead() is deprecated\""},"value":"GasPriceOracle: overhead() is deprecated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf","typeString":"literal_string \"GasPriceOracle: overhead() is deprecated\""}],"id":89925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3011:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:63:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89930,"nodeType":"ExpressionStatement","src":"3011:63:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89932,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3099:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3099:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89931,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3091:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3091:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"3091:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3091:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89924,"id":89937,"nodeType":"Return","src":"3084:62:144"}]},"documentation":{"id":89920,"nodeType":"StructuredDocumentation","src":"2838:108:144","text":"@custom:legacy\n @notice Retrieves the current fee overhead.\n @return Current fee overhead."},"functionSelector":"0c18c162","implemented":true,"kind":"function","modifiers":[],"name":"overhead","nameLocation":"2960:8:144","parameters":{"id":89921,"nodeType":"ParameterList","parameters":[],"src":"2968:2:144"},"returnParameters":{"id":89924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89939,"src":"2992:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89922,"name":"uint256","nodeType":"ElementaryTypeName","src":"2992:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2991:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89959,"nodeType":"FunctionDefinition","src":"3268:196:144","nodes":[],"body":{"id":89958,"nodeType":"Block","src":"3316:148:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":89947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3334:10:144","subExpression":{"id":89946,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"3335:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a207363616c617228292069732064657072656361746564","id":89948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3346:40:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3","typeString":"literal_string \"GasPriceOracle: scalar() is deprecated\""},"value":"GasPriceOracle: scalar() is deprecated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3","typeString":"literal_string \"GasPriceOracle: scalar() is deprecated\""}],"id":89945,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3326:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:61:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89950,"nodeType":"ExpressionStatement","src":"3326:61:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89952,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3412:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3412:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89951,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3404:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3404:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeScalar","nodeType":"MemberAccess","referencedDeclaration":90243,"src":"3404:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3404:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89944,"id":89957,"nodeType":"Return","src":"3397:60:144"}]},"documentation":{"id":89940,"nodeType":"StructuredDocumentation","src":"3159:104:144","text":"@custom:legacy\n @notice Retrieves the current fee scalar.\n @return Current fee scalar."},"functionSelector":"f45e65d8","implemented":true,"kind":"function","modifiers":[],"name":"scalar","nameLocation":"3277:6:144","parameters":{"id":89941,"nodeType":"ParameterList","parameters":[],"src":"3283:2:144"},"returnParameters":{"id":89944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89959,"src":"3307:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89942,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3306:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89973,"nodeType":"FunctionDefinition","src":"3568:124:144","nodes":[],"body":{"id":89972,"nodeType":"Block","src":"3619:73:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89966,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3644:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3644:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89965,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3636:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3636:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","referencedDeclaration":90222,"src":"3636:47:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3636:49:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89964,"id":89971,"nodeType":"Return","src":"3629:56:144"}]},"documentation":{"id":89960,"nodeType":"StructuredDocumentation","src":"3470:93:144","text":"@notice Retrieves the latest known L1 base fee.\n @return Latest known L1 base fee."},"functionSelector":"519b4bd3","implemented":true,"kind":"function","modifiers":[],"name":"l1BaseFee","nameLocation":"3577:9:144","parameters":{"id":89961,"nodeType":"ParameterList","parameters":[],"src":"3586:2:144"},"returnParameters":{"id":89964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89973,"src":"3610:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89962,"name":"uint256","nodeType":"ElementaryTypeName","src":"3610:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3609:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89987,"nodeType":"FunctionDefinition","src":"3790:130:144","nodes":[],"body":{"id":89986,"nodeType":"Block","src":"3843:77:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89980,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3868:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3868:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89979,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3860:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"blobBaseFee","nodeType":"MemberAccess","referencedDeclaration":90246,"src":"3860:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89978,"id":89985,"nodeType":"Return","src":"3853:60:144"}]},"documentation":{"id":89974,"nodeType":"StructuredDocumentation","src":"3698:87:144","text":"@notice Retrieves the current blob base fee.\n @return Current blob base fee."},"functionSelector":"f8206140","implemented":true,"kind":"function","modifiers":[],"name":"blobBaseFee","nameLocation":"3799:11:144","parameters":{"id":89975,"nodeType":"ParameterList","parameters":[],"src":"3810:2:144"},"returnParameters":{"id":89978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89987,"src":"3834:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3834:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3833:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90001,"nodeType":"FunctionDefinition","src":"4022:133:144","nodes":[],"body":{"id":90000,"nodeType":"Block","src":"4076:79:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89994,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"4101:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"4101:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89993,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"4093:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"baseFeeScalar","nodeType":"MemberAccess","referencedDeclaration":90234,"src":"4093:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint32_$","typeString":"function () view external returns (uint32)"}},"id":89998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":89992,"id":89999,"nodeType":"Return","src":"4086:62:144"}]},"documentation":{"id":89988,"nodeType":"StructuredDocumentation","src":"3926:91:144","text":"@notice Retrieves the current base fee scalar.\n @return Current base fee scalar."},"functionSelector":"c5985918","implemented":true,"kind":"function","modifiers":[],"name":"baseFeeScalar","nameLocation":"4031:13:144","parameters":{"id":89989,"nodeType":"ParameterList","parameters":[],"src":"4044:2:144"},"returnParameters":{"id":89992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90001,"src":"4068:6:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":89990,"name":"uint32","nodeType":"ElementaryTypeName","src":"4068:6:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4067:8:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90015,"nodeType":"FunctionDefinition","src":"4267:141:144","nodes":[],"body":{"id":90014,"nodeType":"Block","src":"4325:83:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90008,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"4350:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"4350:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90007,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"4342:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"blobBaseFeeScalar","nodeType":"MemberAccess","referencedDeclaration":90231,"src":"4342:57:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint32_$","typeString":"function () view external returns (uint32)"}},"id":90012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:59:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":90006,"id":90013,"nodeType":"Return","src":"4335:66:144"}]},"documentation":{"id":90002,"nodeType":"StructuredDocumentation","src":"4161:101:144","text":"@notice Retrieves the current blob base fee scalar.\n @return Current blob base fee scalar."},"functionSelector":"68d5dca6","implemented":true,"kind":"function","modifiers":[],"name":"blobBaseFeeScalar","nameLocation":"4276:17:144","parameters":{"id":90003,"nodeType":"ParameterList","parameters":[],"src":"4293:2:144"},"returnParameters":{"id":90006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90015,"src":"4317:6:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90004,"name":"uint32","nodeType":"ElementaryTypeName","src":"4317:6:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4316:8:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90024,"nodeType":"FunctionDefinition","src":"4561:82:144","nodes":[],"body":{"id":90023,"nodeType":"Block","src":"4611:32:144","nodes":[],"statements":[{"expression":{"id":90021,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"4628:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90020,"id":90022,"nodeType":"Return","src":"4621:15:144"}]},"documentation":{"id":90016,"nodeType":"StructuredDocumentation","src":"4414:142:144","text":"@custom:legacy\n @notice Retrieves the number of decimals used in the scalar.\n @return Number of decimals used in the scalar."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"4570:8:144","parameters":{"id":90017,"nodeType":"ParameterList","parameters":[],"src":"4578:2:144"},"returnParameters":{"id":90020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90024,"src":"4602:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90018,"name":"uint256","nodeType":"ElementaryTypeName","src":"4602:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4601:9:144"},"scope":90202,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":90053,"nodeType":"FunctionDefinition","src":"4975:280:144","nodes":[],"body":{"id":90052,"nodeType":"Block","src":"5047:208:144","nodes":[],"statements":[{"assignments":[90033],"declarations":[{"constant":false,"id":90033,"mutability":"mutable","name":"l1GasUsed","nameLocation":"5065:9:144","nodeType":"VariableDeclaration","scope":90052,"src":"5057:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90032,"name":"uint256","nodeType":"ElementaryTypeName","src":"5057:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90037,"initialValue":{"arguments":[{"id":90035,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90027,"src":"5093:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90034,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"5077:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5077:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5057:42:144"},{"condition":{"id":90038,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"5113:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90042,"nodeType":"IfStatement","src":"5109:56:144","trueBody":{"id":90041,"nodeType":"Block","src":"5124:41:144","statements":[{"expression":{"id":90039,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90033,"src":"5145:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90031,"id":90040,"nodeType":"Return","src":"5138:16:144"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90043,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90033,"src":"5181:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90045,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5201:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5201:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90044,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5193:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5193:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"5193:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5193:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5181:67:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90031,"id":90051,"nodeType":"Return","src":"5174:74:144"}]},"documentation":{"id":90025,"nodeType":"StructuredDocumentation","src":"4649:321:144","text":"@notice Computes the amount of L1 gas used for a transaction. Adds 68 bytes\n of padding to account for the fact that the input does not have a signature.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\n @return Amount of L1 gas used to publish the transaction."},"functionSelector":"de26c4a1","implemented":true,"kind":"function","modifiers":[],"name":"getL1GasUsed","nameLocation":"4984:12:144","parameters":{"id":90028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90027,"mutability":"mutable","name":"_data","nameLocation":"5010:5:144","nodeType":"VariableDeclaration","scope":90053,"src":"4997:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90026,"name":"bytes","nodeType":"ElementaryTypeName","src":"4997:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4996:20:144"},"returnParameters":{"id":90031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90053,"src":"5038:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5038:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5037:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90097,"nodeType":"FunctionDefinition","src":"5468:351:144","nodes":[],"body":{"id":90096,"nodeType":"Block","src":"5546:273:144","nodes":[],"statements":[{"assignments":[90062],"declarations":[{"constant":false,"id":90062,"mutability":"mutable","name":"l1GasUsed","nameLocation":"5564:9:144","nodeType":"VariableDeclaration","scope":90096,"src":"5556:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90061,"name":"uint256","nodeType":"ElementaryTypeName","src":"5556:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90066,"initialValue":{"arguments":[{"id":90064,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90056,"src":"5592:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90063,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"5576:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5576:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5556:42:144"},{"assignments":[90068],"declarations":[{"constant":false,"id":90068,"mutability":"mutable","name":"fee","nameLocation":"5616:3:144","nodeType":"VariableDeclaration","scope":90096,"src":"5608:11:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90067,"name":"uint256","nodeType":"ElementaryTypeName","src":"5608:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90088,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90069,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90062,"src":"5623:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90071,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5643:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5643:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90070,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5635:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5635:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"5635:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5635:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5623:67:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90077,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5622:69:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90078,"name":"l1BaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89973,"src":"5694:9:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5694:11:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5622:83:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90082,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5728:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5728:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90081,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5720:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeScalar","nodeType":"MemberAccess","referencedDeclaration":90243,"src":"5720:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5622:151:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5608:165:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90089,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90068,"src":"5790:3:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":90090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5797:2:144","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":90091,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"5803:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5797:14:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5796:16:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5790:22:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90060,"id":90095,"nodeType":"Return","src":"5783:29:144"}]},"documentation":{"id":90054,"nodeType":"StructuredDocumentation","src":"5261:202:144","text":"@notice Computation of the L1 portion of the fee for Bedrock.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx"},"implemented":true,"kind":"function","modifiers":[],"name":"_getL1FeeBedrock","nameLocation":"5477:16:144","parameters":{"id":90057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90056,"mutability":"mutable","name":"_data","nameLocation":"5507:5:144","nodeType":"VariableDeclaration","scope":90097,"src":"5494:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90055,"name":"bytes","nodeType":"ElementaryTypeName","src":"5494:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5493:20:144"},"returnParameters":{"id":90060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90097,"src":"5537:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90058,"name":"uint256","nodeType":"ElementaryTypeName","src":"5537:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5536:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90148,"nodeType":"FunctionDefinition","src":"6015:393:144","nodes":[],"body":{"id":90147,"nodeType":"Block","src":"6093:315:144","nodes":[],"statements":[{"assignments":[90106],"declarations":[{"constant":false,"id":90106,"mutability":"mutable","name":"l1GasUsed","nameLocation":"6111:9:144","nodeType":"VariableDeclaration","scope":90147,"src":"6103:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6103:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90110,"initialValue":{"arguments":[{"id":90108,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90100,"src":"6139:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90107,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"6123:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6123:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6103:42:144"},{"assignments":[90112],"declarations":[{"constant":false,"id":90112,"mutability":"mutable","name":"scaledBaseFee","nameLocation":"6163:13:144","nodeType":"VariableDeclaration","scope":90147,"src":"6155:21:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6155:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90120,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":90116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90113,"name":"baseFeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90001,"src":"6179:13:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint32_$","typeString":"function () view returns (uint32)"}},"id":90114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6179:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":90115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6197:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6179:20:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90117,"name":"l1BaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89973,"src":"6202:9:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6202:11:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6179:34:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6155:58:144"},{"assignments":[90122],"declarations":[{"constant":false,"id":90122,"mutability":"mutable","name":"scaledBlobBaseFee","nameLocation":"6231:17:144","nodeType":"VariableDeclaration","scope":90147,"src":"6223:25:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90121,"name":"uint256","nodeType":"ElementaryTypeName","src":"6223:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90123,"name":"blobBaseFeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90015,"src":"6251:17:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint32_$","typeString":"function () view returns (uint32)"}},"id":90124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6251:19:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90125,"name":"blobBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89987,"src":"6273:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6273:13:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6251:35:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6223:63:144"},{"assignments":[90130],"declarations":[{"constant":false,"id":90130,"mutability":"mutable","name":"fee","nameLocation":"6304:3:144","nodeType":"VariableDeclaration","scope":90147,"src":"6296:11:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90129,"name":"uint256","nodeType":"ElementaryTypeName","src":"6296:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90137,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90131,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90106,"src":"6310:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90132,"name":"scaledBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90112,"src":"6323:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":90133,"name":"scaledBlobBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90122,"src":"6339:17:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6323:33:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6322:35:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6310:47:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6296:61:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90138,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90130,"src":"6374:3:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":90139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6381:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":90140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6386:2:144","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":90141,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"6392:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6386:14:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6381:19:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6380:21:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:27:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90104,"id":90146,"nodeType":"Return","src":"6367:34:144"}]},"documentation":{"id":90098,"nodeType":"StructuredDocumentation","src":"5825:185:144","text":"@notice L1 portion of the fee after Ecotone.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx"},"implemented":true,"kind":"function","modifiers":[],"name":"_getL1FeeEcotone","nameLocation":"6024:16:144","parameters":{"id":90101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90100,"mutability":"mutable","name":"_data","nameLocation":"6054:5:144","nodeType":"VariableDeclaration","scope":90148,"src":"6041:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90099,"name":"bytes","nodeType":"ElementaryTypeName","src":"6041:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6040:20:144"},"returnParameters":{"id":90104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90148,"src":"6084:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90102,"name":"uint256","nodeType":"ElementaryTypeName","src":"6084:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6083:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90201,"nodeType":"FunctionDefinition","src":"6610:366:144","nodes":[],"body":{"id":90200,"nodeType":"Block","src":"6687:289:144","nodes":[],"statements":[{"assignments":[90157],"declarations":[{"constant":false,"id":90157,"mutability":"mutable","name":"total","nameLocation":"6705:5:144","nodeType":"VariableDeclaration","scope":90200,"src":"6697:13:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90156,"name":"uint256","nodeType":"ElementaryTypeName","src":"6697:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90159,"initialValue":{"hexValue":"30","id":90158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6713:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6697:17:144"},{"assignments":[90161],"declarations":[{"constant":false,"id":90161,"mutability":"mutable","name":"length","nameLocation":"6732:6:144","nodeType":"VariableDeclaration","scope":90200,"src":"6724:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90160,"name":"uint256","nodeType":"ElementaryTypeName","src":"6724:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90164,"initialValue":{"expression":{"id":90162,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90151,"src":"6741:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":90163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6741:12:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6724:29:144"},{"body":{"id":90191,"nodeType":"Block","src":"6800:136:144","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":90179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":90175,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90151,"src":"6818:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":90177,"indexExpression":{"id":90176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6824:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6818:8:144","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":90178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6830:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6818:13:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":90189,"nodeType":"Block","src":"6882:44:144","statements":[{"expression":{"id":90187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90185,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6900:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":90186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6909:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6900:11:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90188,"nodeType":"ExpressionStatement","src":"6900:11:144"}]},"id":90190,"nodeType":"IfStatement","src":"6814:112:144","trueBody":{"id":90184,"nodeType":"Block","src":"6833:43:144","statements":[{"expression":{"id":90182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90180,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6851:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":90181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6860:1:144","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"6851:10:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90183,"nodeType":"ExpressionStatement","src":"6851:10:144"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90169,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6783:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":90170,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90161,"src":"6787:6:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6783:10:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90192,"initializationExpression":{"assignments":[90166],"declarations":[{"constant":false,"id":90166,"mutability":"mutable","name":"i","nameLocation":"6776:1:144","nodeType":"VariableDeclaration","scope":90192,"src":"6768:9:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90165,"name":"uint256","nodeType":"ElementaryTypeName","src":"6768:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90168,"initialValue":{"hexValue":"30","id":90167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6780:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6768:13:144"},"loopExpression":{"expression":{"id":90173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6795:3:144","subExpression":{"id":90172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6795:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90174,"nodeType":"ExpressionStatement","src":"6795:3:144"},"nodeType":"ForStatement","src":"6763:173:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90193,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6952:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"},"id":90196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3638","id":90194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6961:2:144","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":90195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6966:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6961:7:144","typeDescriptions":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"}}],"id":90197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6960:9:144","typeDescriptions":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"}},"src":"6952:17:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90155,"id":90199,"nodeType":"Return","src":"6945:24:144"}]},"documentation":{"id":90149,"nodeType":"StructuredDocumentation","src":"6414:191:144","text":"@notice L1 gas estimation calculation.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\n @return Amount of L1 gas used to publish the transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"_getCalldataGas","nameLocation":"6619:15:144","parameters":{"id":90152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90151,"mutability":"mutable","name":"_data","nameLocation":"6648:5:144","nodeType":"VariableDeclaration","scope":90201,"src":"6635:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90150,"name":"bytes","nodeType":"ElementaryTypeName","src":"6635:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6634:20:144"},"returnParameters":{"id":90155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90201,"src":"6678:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90153,"name":"uint256","nodeType":"ElementaryTypeName","src":"6678:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6677:9:144"},"scope":90202,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":89838,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1180:7:144"},"id":89839,"nodeType":"InheritanceSpecifier","src":"1180:7:144"}],"canonicalName":"GasPriceOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":89837,"nodeType":"StructuredDocumentation","src":"216:937:144","text":"@custom:proxied\n @custom:predeploy 0x420000000000000000000000000000000000000F\n @title GasPriceOracle\n @notice This contract maintains the variables responsible for computing the L1 portion of the\n total fee charged on L2. Before Bedrock, this contract held variables in state that were\n read during the state transition function to compute the L1 portion of the transaction\n fee. After Bedrock, this contract now simply proxies the L1Block contract, which has\n the values used to compute the L1 portion of the fee in its state.\n The contract exposes an API that is useful for knowing how large the L1 portion of the\n transaction fee will be. The following events were deprecated with Bedrock:\n - event OverheadUpdated(uint256 overhead);\n - event ScalarUpdated(uint256 scalar);\n - event DecimalsUpdated(uint256 decimals);"},"fullyImplemented":true,"linearizedBaseContracts":[90202,109417],"name":"GasPriceOracle","nameLocation":"1162:14:144","scope":90203,"usedErrors":[]}],"license":"MIT"},"id":144} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L1Block.json b/packages/sdk/src/forge-artifacts/L1Block.json new file mode 100644 index 000000000000..c62500ca1155 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L1Block.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DEPOSITOR_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"basefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"hash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"l1FeeOverhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1FeeScalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"sequenceNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setL1BlockValues","inputs":[{"name":"_number","type":"uint64","internalType":"uint64"},{"name":"_timestamp","type":"uint64","internalType":"uint64"},{"name":"_basefee","type":"uint256","internalType":"uint256"},{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_sequenceNumber","type":"uint64","internalType":"uint64"},{"name":"_batcherHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1FeeOverhead","type":"uint256","internalType":"uint256"},{"name":"_l1FeeScalar","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1BlockValuesEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061053e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:660;;;;;;:::i;:::-;;:::i;:::-;;1071:19;;;;;;;;;1014:25:357;;;1002:2;987:18;1071:19:145;;;;;;;;3886:956;;;:::i;1961:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1001:22::-;;;;;;1156:28;;;;;;;;;;;;2067:18:357;2055:31;;;2037:50;;2025:2;2010:18;1156:28:145;1893:200:357;1298:31:145;;;;;;;;;;;;;;;2272:10:357;2260:23;;;2242:42;;2230:2;2215:18;1298:31:145;2098:192:357;840:20:145;;;;;;;;;1680:28;;;;;;1821:26;;;;;;931:23;;;;;;;;;;;;1438:27;;;;;;;;;;;;680:86;;724:42;680:86;;;;;2471:42:357;2459:55;;;2441:74;;2429:2;2414:18;680:86:145;2295:226:357;1539:26:145;;;;;;1899;;;;;;2494:660;2789:10;724:42;2789:31;2781:103;;;;;;;2728:2:357;2781:103:145;;;2710:21:357;2767:2;2747:18;;;2740:30;2806:34;2786:18;;;2779:62;2877:29;2857:18;;;2850:57;2924:19;;2781:103:145;;;;;;;;2895:6;:16;;;2921:22;;;;;;;;;2895:16;;;2921:22;;;;;;;;;;;2895:16;2953:18;;;;2981:4;:12;;;;3003:14;:32;;;;;;2895:16;3003:32;;;;;;;;3045:11;:26;;;;3081:13;:30;3121:11;:26;2494:660::o;3886:956::-;4036:8;4046:17;4029:233;;;4096:10;4090:4;4083:24;4194:4;4188;4181:18;4029:233;4453:1;4440:15;4435:3;4431:25;4410:19;4403:54;4566:2;4553:16;4548:3;4544:26;4531:11;4524:47;4618:2;4605:16;4591:12;4584:38;4684:2;4671:16;4653;4646:42;4743:3;4730:17;4719:9;4712:36;4810:3;4797:17;4779:16;4772:43;3886:956::o;14:171:357:-;81:20;;141:18;130:30;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:673::-;309:6;317;325;333;341;349;357;365;418:3;406:9;397:7;393:23;389:33;386:53;;;435:1;432;425:12;386:53;458:28;476:9;458:28;:::i;:::-;448:38;;505:37;538:2;527:9;523:18;505:37;:::i;:::-;495:47;;589:2;578:9;574:18;561:32;551:42;;640:2;629:9;625:18;612:32;602:42;;663:38;696:3;685:9;681:19;663:38;:::i;:::-;190:673;;;;-1:-1:-1;190:673:357;;;;653:48;748:3;733:19;;720:33;;-1:-1:-1;800:3:357;785:19;;772:33;;852:3;837:19;824:33;;-1:-1:-1;190:673:357;-1:-1:-1;;190:673:357:o;1050:656::-;1162:4;1191:2;1220;1209:9;1202:21;1252:6;1246:13;1295:6;1290:2;1279:9;1275:18;1268:34;1320:1;1330:140;1344:6;1341:1;1338:13;1330:140;;;1439:14;;;1435:23;;1429:30;1405:17;;;1424:2;1401:26;1394:66;1359:10;;1330:140;;;1488:6;1485:1;1482:13;1479:91;;;1558:1;1553:2;1544:6;1533:9;1529:22;1525:31;1518:42;1479:91;-1:-1:-1;1622:2:357;1610:15;1627:66;1606:88;1591:104;;;;1697:2;1587:113;;1050:656;-1:-1:-1;;;1050:656:357:o","linkReferences":{}},"methodIdentifiers":{"DEPOSITOR_ACCOUNT()":"e591b282","baseFeeScalar()":"c5985918","basefee()":"5cf24969","batcherHash()":"e81b2c6d","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","hash()":"09bd5a60","l1FeeOverhead()":"8b239f73","l1FeeScalar()":"9e8c4966","number()":"8381f58a","sequenceNumber()":"64ca23ef","setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":"015d8eb9","setL1BlockValuesEcotone()":"440a5e20","timestamp()":"b80777ea","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DEPOSITOR_ACCOUNT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"basefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeOverhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeScalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_number\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeOverhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeScalar\",\"type\":\"uint256\"}],\"name\":\"setL1BlockValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setL1BlockValuesEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000015\",\"kind\":\"dev\",\"methods\":{\"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)\":{\"custom:legacy\":\"@notice Updates the L1 block values.\",\"params\":{\"_basefee\":\"L1 basefee.\",\"_batcherHash\":\"Versioned hash to authenticate batcher by.\",\"_hash\":\"L1 blockhash.\",\"_l1FeeOverhead\":\"L1 fee overhead.\",\"_l1FeeScalar\":\"L1 fee scalar.\",\"_number\":\"L1 blocknumber.\",\"_sequenceNumber\":\"Number of L2 blocks since epoch start.\",\"_timestamp\":\"L1 timestamp.\"}}},\"stateVariables\":{\"l1FeeOverhead\":{\"custom:legacy\":\"\"},\"l1FeeScalar\":{\"custom:legacy\":\"\"},\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"L1Block\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEPOSITOR_ACCOUNT()\":{\"notice\":\"Address of the special depositor account.\"},\"baseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.\"},\"basefee()\":{\"notice\":\"The latest L1 base fee.\"},\"batcherHash()\":{\"notice\":\"The versioned hash to authenticate the batcher by.\"},\"blobBaseFee()\":{\"notice\":\"The latest L1 blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.\"},\"hash()\":{\"notice\":\"The latest L1 blockhash.\"},\"l1FeeOverhead()\":{\"notice\":\"The overhead value applied to the L1 portion of the transaction fee.\"},\"l1FeeScalar()\":{\"notice\":\"The scalar value applied to the L1 portion of the transaction fee.\"},\"number()\":{\"notice\":\"The latest L1 block number known by the L2 system.\"},\"sequenceNumber()\":{\"notice\":\"The number of L2 blocks in the same epoch.\"},\"setL1BlockValuesEcotone()\":{\"notice\":\"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by.\"},\"timestamp()\":{\"notice\":\"The latest L1 timestamp known by the L2 system.\"}},\"notice\":\"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\\"depositor\\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1Block.sol\":\"L1Block\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValues"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValuesEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"custom:legacy":"@notice Updates the L1 block values.","params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"version":1},"userdoc":{"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1Block.sol":"L1Block"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":90216,"contract":"src/L2/L1Block.sol:L1Block","label":"number","offset":0,"slot":"0","type":"t_uint64"},{"astId":90219,"contract":"src/L2/L1Block.sol:L1Block","label":"timestamp","offset":8,"slot":"0","type":"t_uint64"},{"astId":90222,"contract":"src/L2/L1Block.sol:L1Block","label":"basefee","offset":0,"slot":"1","type":"t_uint256"},{"astId":90225,"contract":"src/L2/L1Block.sol:L1Block","label":"hash","offset":0,"slot":"2","type":"t_bytes32"},{"astId":90228,"contract":"src/L2/L1Block.sol:L1Block","label":"sequenceNumber","offset":0,"slot":"3","type":"t_uint64"},{"astId":90231,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFeeScalar","offset":8,"slot":"3","type":"t_uint32"},{"astId":90234,"contract":"src/L2/L1Block.sol:L1Block","label":"baseFeeScalar","offset":12,"slot":"3","type":"t_uint32"},{"astId":90237,"contract":"src/L2/L1Block.sol:L1Block","label":"batcherHash","offset":0,"slot":"4","type":"t_bytes32"},{"astId":90240,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeOverhead","offset":0,"slot":"5","type":"t_uint256"},{"astId":90243,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeScalar","offset":0,"slot":"6","type":"t_uint256"},{"astId":90246,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFee","offset":0,"slot":"7","type":"t_uint256"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"notice":"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \"depositor\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch."},"devdoc":{"version":1,"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"title":"L1Block"},"ast":{"absolutePath":"src/L2/L1Block.sol","id":90319,"exportedSymbols":{"ISemver":[109417],"L1Block":[90318]},"nodeType":"SourceUnit","src":"32:4813:145","nodes":[{"id":90204,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90206,"nodeType":"ImportDirective","src":"57:52:145","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90319,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90205,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"66:7:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90318,"nodeType":"ContractDefinition","src":"588:4256:145","nodes":[{"id":90213,"nodeType":"VariableDeclaration","src":"680:86:145","nodes":[],"constant":true,"documentation":{"id":90210,"nodeType":"StructuredDocumentation","src":"622:53:145","text":"@notice Address of the special depositor account."},"functionSelector":"e591b282","mutability":"constant","name":"DEPOSITOR_ACCOUNT","nameLocation":"704:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90211,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656144444561444465416444654164444541644445616464654164644541644445416430303031","id":90212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"724:42:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001"},"visibility":"public"},{"id":90216,"nodeType":"VariableDeclaration","src":"840:20:145","nodes":[],"constant":false,"documentation":{"id":90214,"nodeType":"StructuredDocumentation","src":"773:62:145","text":"@notice The latest L1 block number known by the L2 system."},"functionSelector":"8381f58a","mutability":"mutable","name":"number","nameLocation":"854:6:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90215,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90219,"nodeType":"VariableDeclaration","src":"931:23:145","nodes":[],"constant":false,"documentation":{"id":90217,"nodeType":"StructuredDocumentation","src":"867:59:145","text":"@notice The latest L1 timestamp known by the L2 system."},"functionSelector":"b80777ea","mutability":"mutable","name":"timestamp","nameLocation":"945:9:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90218,"name":"uint64","nodeType":"ElementaryTypeName","src":"931:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90222,"nodeType":"VariableDeclaration","src":"1001:22:145","nodes":[],"constant":false,"documentation":{"id":90220,"nodeType":"StructuredDocumentation","src":"961:35:145","text":"@notice The latest L1 base fee."},"functionSelector":"5cf24969","mutability":"mutable","name":"basefee","nameLocation":"1016:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90225,"nodeType":"VariableDeclaration","src":"1071:19:145","nodes":[],"constant":false,"documentation":{"id":90223,"nodeType":"StructuredDocumentation","src":"1030:36:145","text":"@notice The latest L1 blockhash."},"functionSelector":"09bd5a60","mutability":"mutable","name":"hash","nameLocation":"1086:4:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1071:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90228,"nodeType":"VariableDeclaration","src":"1156:28:145","nodes":[],"constant":false,"documentation":{"id":90226,"nodeType":"StructuredDocumentation","src":"1097:54:145","text":"@notice The number of L2 blocks in the same epoch."},"functionSelector":"64ca23ef","mutability":"mutable","name":"sequenceNumber","nameLocation":"1170:14:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90227,"name":"uint64","nodeType":"ElementaryTypeName","src":"1156:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90231,"nodeType":"VariableDeclaration","src":"1298:31:145","nodes":[],"constant":false,"documentation":{"id":90229,"nodeType":"StructuredDocumentation","src":"1191:102:145","text":"@notice The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"functionSelector":"68d5dca6","mutability":"mutable","name":"blobBaseFeeScalar","nameLocation":"1312:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90230,"name":"uint32","nodeType":"ElementaryTypeName","src":"1298:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90234,"nodeType":"VariableDeclaration","src":"1438:27:145","nodes":[],"constant":false,"documentation":{"id":90232,"nodeType":"StructuredDocumentation","src":"1336:97:145","text":"@notice The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"functionSelector":"c5985918","mutability":"mutable","name":"baseFeeScalar","nameLocation":"1452:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90233,"name":"uint32","nodeType":"ElementaryTypeName","src":"1438:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90237,"nodeType":"VariableDeclaration","src":"1539:26:145","nodes":[],"constant":false,"documentation":{"id":90235,"nodeType":"StructuredDocumentation","src":"1472:62:145","text":"@notice The versioned hash to authenticate the batcher by."},"functionSelector":"e81b2c6d","mutability":"mutable","name":"batcherHash","nameLocation":"1554:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90240,"nodeType":"VariableDeclaration","src":"1680:28:145","nodes":[],"constant":false,"documentation":{"id":90238,"nodeType":"StructuredDocumentation","src":"1572:103:145","text":"@notice The overhead value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"8b239f73","mutability":"mutable","name":"l1FeeOverhead","nameLocation":"1695:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90243,"nodeType":"VariableDeclaration","src":"1821:26:145","nodes":[],"constant":false,"documentation":{"id":90241,"nodeType":"StructuredDocumentation","src":"1715:101:145","text":"@notice The scalar value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"9e8c4966","mutability":"mutable","name":"l1FeeScalar","nameLocation":"1836:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90242,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90246,"nodeType":"VariableDeclaration","src":"1899:26:145","nodes":[],"constant":false,"documentation":{"id":90244,"nodeType":"StructuredDocumentation","src":"1854:40:145","text":"@notice The latest L1 blob base fee."},"functionSelector":"f8206140","mutability":"mutable","name":"blobBaseFee","nameLocation":"1914:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90250,"nodeType":"VariableDeclaration","src":"1961:40:145","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90247,"nodeType":"StructuredDocumentation","src":"1932:24:145","text":"@custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1984:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90248,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:145","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":90249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:7:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":90311,"nodeType":"FunctionDefinition","src":"2494:660:145","nodes":[],"body":{"id":90310,"nodeType":"Block","src":"2771:383:145","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":90271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2789:3:145","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2789:10:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90273,"name":"DEPOSITOR_ACCOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90213,"src":"2803:17:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2789:31:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e20736574204c3120626c6f636b2076616c756573","id":90275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2822:61:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""},"value":"L1Block: only the depositor account can set L1 block values"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""}],"id":90270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2781:7:145","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2781:103:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90277,"nodeType":"ExpressionStatement","src":"2781:103:145"},{"expression":{"id":90280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90278,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90216,"src":"2895:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90279,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90253,"src":"2904:7:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2895:16:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90281,"nodeType":"ExpressionStatement","src":"2895:16:145"},{"expression":{"id":90284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90282,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90219,"src":"2921:9:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90283,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90255,"src":"2933:10:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2921:22:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90285,"nodeType":"ExpressionStatement","src":"2921:22:145"},{"expression":{"id":90288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90286,"name":"basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90222,"src":"2953:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90287,"name":"_basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90257,"src":"2963:8:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:18:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90289,"nodeType":"ExpressionStatement","src":"2953:18:145"},{"expression":{"id":90292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90290,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90225,"src":"2981:4:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90291,"name":"_hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90259,"src":"2988:5:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2981:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90293,"nodeType":"ExpressionStatement","src":"2981:12:145"},{"expression":{"id":90296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90294,"name":"sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90228,"src":"3003:14:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90295,"name":"_sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90261,"src":"3020:15:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3003:32:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90297,"nodeType":"ExpressionStatement","src":"3003:32:145"},{"expression":{"id":90300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90298,"name":"batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90237,"src":"3045:11:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90299,"name":"_batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90263,"src":"3059:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3045:26:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90301,"nodeType":"ExpressionStatement","src":"3045:26:145"},{"expression":{"id":90304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90302,"name":"l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90240,"src":"3081:13:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90303,"name":"_l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90265,"src":"3097:14:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3081:30:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90305,"nodeType":"ExpressionStatement","src":"3081:30:145"},{"expression":{"id":90308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90306,"name":"l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90243,"src":"3121:11:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90307,"name":"_l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90267,"src":"3135:12:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3121:26:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90309,"nodeType":"ExpressionStatement","src":"3121:26:145"}]},"documentation":{"id":90251,"nodeType":"StructuredDocumentation","src":"2008:481:145","text":"@custom:legacy\n @notice Updates the L1 block values.\n @param _number L1 blocknumber.\n @param _timestamp L1 timestamp.\n @param _basefee L1 basefee.\n @param _hash L1 blockhash.\n @param _sequenceNumber Number of L2 blocks since epoch start.\n @param _batcherHash Versioned hash to authenticate batcher by.\n @param _l1FeeOverhead L1 fee overhead.\n @param _l1FeeScalar L1 fee scalar."},"functionSelector":"015d8eb9","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValues","nameLocation":"2503:16:145","parameters":{"id":90268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90253,"mutability":"mutable","name":"_number","nameLocation":"2536:7:145","nodeType":"VariableDeclaration","scope":90311,"src":"2529:14:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90252,"name":"uint64","nodeType":"ElementaryTypeName","src":"2529:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90255,"mutability":"mutable","name":"_timestamp","nameLocation":"2560:10:145","nodeType":"VariableDeclaration","scope":90311,"src":"2553:17:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90254,"name":"uint64","nodeType":"ElementaryTypeName","src":"2553:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90257,"mutability":"mutable","name":"_basefee","nameLocation":"2588:8:145","nodeType":"VariableDeclaration","scope":90311,"src":"2580:16:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90259,"mutability":"mutable","name":"_hash","nameLocation":"2614:5:145","nodeType":"VariableDeclaration","scope":90311,"src":"2606:13:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2606:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90261,"mutability":"mutable","name":"_sequenceNumber","nameLocation":"2636:15:145","nodeType":"VariableDeclaration","scope":90311,"src":"2629:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90260,"name":"uint64","nodeType":"ElementaryTypeName","src":"2629:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90263,"mutability":"mutable","name":"_batcherHash","nameLocation":"2669:12:145","nodeType":"VariableDeclaration","scope":90311,"src":"2661:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2661:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90265,"mutability":"mutable","name":"_l1FeeOverhead","nameLocation":"2699:14:145","nodeType":"VariableDeclaration","scope":90311,"src":"2691:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90264,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90267,"mutability":"mutable","name":"_l1FeeScalar","nameLocation":"2731:12:145","nodeType":"VariableDeclaration","scope":90311,"src":"2723:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2519:230:145"},"returnParameters":{"id":90269,"nodeType":"ParameterList","parameters":[],"src":"2771:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90317,"nodeType":"FunctionDefinition","src":"3886:956:145","nodes":[],"body":{"id":90316,"nodeType":"Block","src":"3930:912:145","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3949:887:145","statements":[{"body":{"nodeType":"YulBlock","src":"4065:197:145","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4090:4:145","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4096:10:145","type":"","value":"0x3cc50b45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4083:6:145"},"nodeType":"YulFunctionCall","src":"4083:24:145"},"nodeType":"YulExpressionStatement","src":"4083:24:145"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4188:4:145","type":"","value":"0x1C"},{"kind":"number","nodeType":"YulLiteral","src":"4194:4:145","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4181:6:145"},"nodeType":"YulFunctionCall","src":"4181:18:145"},"nodeType":"YulExpressionStatement","src":"4181:18:145"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"4036:6:145"},"nodeType":"YulFunctionCall","src":"4036:8:145"},{"name":"DEPOSITOR_ACCOUNT","nodeType":"YulIdentifier","src":"4046:17:145"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4032:3:145"},"nodeType":"YulFunctionCall","src":"4032:32:145"},"nodeType":"YulIf","src":"4029:233:145"},{"nodeType":"YulVariableDeclaration","src":"4275:27:145","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4300:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4287:12:145"},"nodeType":"YulFunctionCall","src":"4287:15:145"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"4279:4:145","type":""}]},{"expression":{"arguments":[{"name":"sequenceNumber.slot","nodeType":"YulIdentifier","src":"4410:19:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4453:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4440:12:145"},"nodeType":"YulFunctionCall","src":"4440:15:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4431:3:145"},"nodeType":"YulFunctionCall","src":"4431:25:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4403:6:145"},"nodeType":"YulFunctionCall","src":"4403:54:145"},"nodeType":"YulExpressionStatement","src":"4403:54:145"},{"expression":{"arguments":[{"name":"number.slot","nodeType":"YulIdentifier","src":"4531:11:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4548:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4566:2:145","type":"","value":"20"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4553:12:145"},"nodeType":"YulFunctionCall","src":"4553:16:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4544:3:145"},"nodeType":"YulFunctionCall","src":"4544:26:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4524:6:145"},"nodeType":"YulFunctionCall","src":"4524:47:145"},"nodeType":"YulExpressionStatement","src":"4524:47:145"},{"expression":{"arguments":[{"name":"basefee.slot","nodeType":"YulIdentifier","src":"4591:12:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4618:2:145","type":"","value":"36"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4605:12:145"},"nodeType":"YulFunctionCall","src":"4605:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4584:6:145"},"nodeType":"YulFunctionCall","src":"4584:38:145"},"nodeType":"YulExpressionStatement","src":"4584:38:145"},{"expression":{"arguments":[{"name":"blobBaseFee.slot","nodeType":"YulIdentifier","src":"4653:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4684:2:145","type":"","value":"68"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4671:12:145"},"nodeType":"YulFunctionCall","src":"4671:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4646:6:145"},"nodeType":"YulFunctionCall","src":"4646:42:145"},"nodeType":"YulExpressionStatement","src":"4646:42:145"},{"expression":{"arguments":[{"name":"hash.slot","nodeType":"YulIdentifier","src":"4719:9:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4743:3:145","type":"","value":"100"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4730:12:145"},"nodeType":"YulFunctionCall","src":"4730:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4712:6:145"},"nodeType":"YulFunctionCall","src":"4712:36:145"},"nodeType":"YulExpressionStatement","src":"4712:36:145"},{"expression":{"arguments":[{"name":"batcherHash.slot","nodeType":"YulIdentifier","src":"4779:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4810:3:145","type":"","value":"132"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4797:12:145"},"nodeType":"YulFunctionCall","src":"4797:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4772:6:145"},"nodeType":"YulFunctionCall","src":"4772:43:145"},"nodeType":"YulExpressionStatement","src":"4772:43:145"}]},"evmVersion":"london","externalReferences":[{"declaration":90213,"isOffset":false,"isSlot":false,"src":"4046:17:145","valueSize":1},{"declaration":90222,"isOffset":false,"isSlot":true,"src":"4591:12:145","suffix":"slot","valueSize":1},{"declaration":90237,"isOffset":false,"isSlot":true,"src":"4779:16:145","suffix":"slot","valueSize":1},{"declaration":90246,"isOffset":false,"isSlot":true,"src":"4653:16:145","suffix":"slot","valueSize":1},{"declaration":90225,"isOffset":false,"isSlot":true,"src":"4719:9:145","suffix":"slot","valueSize":1},{"declaration":90216,"isOffset":false,"isSlot":true,"src":"4531:11:145","suffix":"slot","valueSize":1},{"declaration":90228,"isOffset":false,"isSlot":true,"src":"4410:19:145","suffix":"slot","valueSize":1}],"id":90315,"nodeType":"InlineAssembly","src":"3940:896:145"}]},"documentation":{"id":90312,"nodeType":"StructuredDocumentation","src":"3160:721:145","text":"@notice Updates the L1 block values for an Ecotone upgraded chain.\n Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size.\n Params are expected to be in the following order:\n 1. _baseFeeScalar L1 base fee scalar\n 2. _blobBaseFeeScalar L1 blob base fee scalar\n 3. _sequenceNumber Number of L2 blocks since epoch start.\n 4. _timestamp L1 timestamp.\n 5. _number L1 blocknumber.\n 6. _basefee L1 base fee.\n 7. _blobBaseFee L1 blob base fee.\n 8. _hash L1 blockhash.\n 9. _batcherHash Versioned hash to authenticate batcher by."},"functionSelector":"440a5e20","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValuesEcotone","nameLocation":"3895:23:145","parameters":{"id":90313,"nodeType":"ParameterList","parameters":[],"src":"3918:2:145"},"returnParameters":{"id":90314,"nodeType":"ParameterList","parameters":[],"src":"3930:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":90208,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"608:7:145"},"id":90209,"nodeType":"InheritanceSpecifier","src":"608:7:145"}],"canonicalName":"L1Block","contractDependencies":[],"contractKind":"contract","documentation":{"id":90207,"nodeType":"StructuredDocumentation","src":"111:477:145","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000015\n @title L1Block\n @notice The L1Block predeploy gives users access to information about the last known L1 block.\n Values within this contract are updated once per epoch (every L1 block) and can only be\n set by the \"depositor\" account, a special system address. Depositor account transactions\n are created by the protocol whenever we move to a new epoch."},"fullyImplemented":true,"linearizedBaseContracts":[90318,109417],"name":"L1Block","nameLocation":"597:7:145","scope":90319,"usedErrors":[]}],"license":"MIT"},"id":145} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L1CrossDomainMessenger.json b/packages/sdk/src/forge-artifacts/L1CrossDomainMessenger.json new file mode 100644 index 000000000000..9dba5479d699 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L1CrossDomainMessenger.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"OTHER_MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"PORTAL","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CALL_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CONSTANT_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_GAS_CHECK_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_RESERVED_GAS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"baseGas","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"},{"name":"_portal","type":"address","internalType":"contract OptimismPortal"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"otherMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"portal","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"messageNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SentMessageExtension1","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b6200027f565b600054600160a81b900460ff16158080156200004e57506000546001600160a01b90910460ff16105b806200008557506200006b30620001b960201b620014d61760201c565b158015620000855750600054600160a01b900460ff166001145b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b17905580156200011c576000805460ff60a81b1916600160a81b1790555b60fb80546001600160a01b038086166001600160a01b03199283161790925560fc8054928516929091169190911790556200016b734200000000000000000000000000000000000007620001c8565b8015620001b4576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620002375760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b60cc546001600160a01b03166200025d5760cc80546001600160a01b03191661dead1790555b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b611f94806200028f6000396000f3fe6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;1159:163;;;;;;;;;-1:-1:-1;1206:109:130::1;1263:1;::::0;1206:10:::1;:109::i;:::-;701:2432:::0;;1542:296;3111:19:27;3134:13;-1:-1:-1;;;3134:13:27;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;-1:-1:-1;;;3197:12:27;;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;-1:-1:-1;;;3268:12:27;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;;;3368:16:27;-1:-1:-1;;;3368:16:27;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:27;-1:-1:-1;;;3428:20:27;;;3394:65;1651:16:130::1;:36:::0;;-1:-1:-1;;;;;1651:36:130;;::::1;-1:-1:-1::0;;;;;;1651:36:130;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;18503:636:223:-;4910:13:27;;-1:-1:-1;;;4910:13:27;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;18988:16:223::1;::::0;-1:-1:-1;;;;;18988:16:223::1;18984:107;;19034:16;:46:::0;;-1:-1:-1;;;;;;19034:46:223::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;-1:-1:-1;;;;;;19100:32:223::1;-1:-1:-1::0;;;;;19100:32:223;;;::::1;::::0;;;::::1;::::0;;18503:636::o;628:407:357:-;701:2432:130;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:53:223;;;;;;;;;;;;4507:2;4456:53;;;;;188:18:357;176:31;;;158:50;;146:2;131:18;4456:53:223;;;;;;;;4301:64;;;;;;;;;;;;4363:2;4301:64;;2107:87:130;;;;;;;;;;-1:-1:-1;2181:6:130;;;;2107:87;;;427:42:357;415:55;;;397:74;;385:2;370:18;2107:87:130;219:258:357;4146:62:223;;;;;;;;;;;;4206:2;4146:62;;822:40:130;;;;;;;;;;-1:-1:-1;822:40:130;;;;;;;;8628:995:223;;;;;;:::i;:::-;;:::i;:::-;;3879:42;;;;;;;;;;;;3920:1;3879:42;;;;;2213:6:357;2201:19;;;2183:38;;2171:2;2156:18;3879:42:223;2039:188:357;1542:296:130;;;;;;;;;;-1:-1:-1;1542:296:130;;;;;:::i;:::-;;:::i;4597:51:223:-;;;;;;;;;;;;4642:6;4597:51;;1048:40:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4943:53:223:-;;;;;;;;;;;;4991:5;4943:53;;3028:103:130;;;;;;;;;;;;;:::i;:::-;;;3601:14:357;;3594:22;3576:41;;3564:2;3549:18;3028:103:130;3436:187:357;950:28:130;;;;;;;;;;-1:-1:-1;950:28:130;;;;;;;;15764:250:223;;;;;;;;;;;;;:::i;3999:56::-;;;;;;;;;;;;4048:7;3999:56;;16317:108;;;;;;;;;;-1:-1:-1;16404:14:223;;;;16317:108;;6234:46;;;;;;;;;;-1:-1:-1;6234:46:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;5252:50;;;;;;;;;;-1:-1:-1;5252:50:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;17493:894;;;;;;;;;;-1:-1:-1;17493:894:223;;;;;:::i;:::-;;:::i;10311:5066::-;;;;;;:::i;:::-;;:::i;6386:42::-;;;;;;;;;;-1:-1:-1;6386:42:223;;;;;;;;16746:134;;;;;;;;;;;;16847:8;;;;4855:18:195;4852:30;;3028:103:130;16746:134:223;;;5835:25:357;;;5823:2;5808:18;16746:134:223;5689:177:357;8628:995:223;9128:14;;9088:326;;9128:14;;9168:31;9176:8;;9186:12;9168:7;:31::i;:::-;9221:9;9291:26;9319:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9319:14:223;9335:10;9347:7;9356:9;9367:12;9381:8;;9251:152;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9088:12;:326::i;:::-;9442:7;9430:72;;;9451:10;9463:8;;9473:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9473:14:223;9489:12;9430:72;;;;;;;;;;:::i;:::-;;;;;;;;9517:44;;9551:9;5835:25:357;;9539:10:223;;9517:44;;5823:2:357;5808:18;9517:44:223;;;;;;;-1:-1:-1;;9598:8:223;9596:10;;;;;;;;;;;;;;;;-1:-1:-1;;8628:995:223:o;1542:296:130:-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;;;3284:1;3268:17;3219:66;3157:201;;;;;;;7634:2:357;3157:201:27;;;7616:21:357;7673:2;7653:18;;;7646:30;7712:34;7692:18;;;7685:62;7783:16;7763:18;;;7756:44;7817:19;;3157:201:27;;;;;;;;;3368:12;:16;;;;;;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;1651:16:130::1;:36:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;7999:36:357;;3553:14:27;;7987:2:357;7972:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;3028:103::-;3099:16;;:25;;;;;;;;3076:4;;3099:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3092:32;;3028:103;:::o;15764:250:223:-;15859:16;;15819:7;;15859:47;:16;:47;;15838:135;;;;;;;8530:2:357;15838:135:223;;;8512:21:357;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;8679:23;8659:18;;;8652:51;8720:19;;15838:135:223;8328:417:357;15838:135:223;-1:-1:-1;15991:16:223;;;;;15764:250::o;17493:894::-;17577:6;4991:5;4796:6;;4363:2;17806:49;4206:2;17806:49;;;;:::i;:::-;17805:90;;;;:::i;:::-;17703:51;4507:2;17710:8;17703:51;:::i;:::-;17639:116;;4048:7;17639:116;:::i;:::-;:257;;;;:::i;:::-;:412;;;;:::i;:::-;:587;;;;:::i;:::-;:741;;;;:::i;:::-;17595:785;17493:894;-1:-1:-1;;;;17493:894:223:o;10311:5066::-;10722:8;:6;:8::i;:::-;:17;10714:58;;;;;;;10015:2:357;10714:58:223;;;9997:21:357;10054:2;10034:18;;;10027:30;10093;10073:18;;;10066:58;10141:18;;10714:58:223;9813:352:357;10714:58:223;5444:3:195;5440:16;;;10869:1:223;10859:11;;10851:101;;;;;;;10372:2:357;10851:101:223;;;10354:21:357;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:34;10501:18;;;10494:62;10593:15;10572:19;;;10565:44;10626:19;;10851:101:223;10170:481:357;10851:101:223;11154:7;:12;;11165:1;11154:12;11150:247;;11182:15;11200:68;11233:7;11242;11251:8;;11200:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11261:6:223;;-1:-1:-1;11200:32:223;;-1:-1:-1;;11200:68:223:i;:::-;11290:27;;;;:18;:27;;;;;;11182:86;;-1:-1:-1;11290:27:223;;:36;11282:104;;;;;;;10858:2:357;11282:104:223;;;10840:21:357;10897:2;10877:18;;;10870:30;10936:34;10916:18;;;10909:62;11007:25;10987:18;;;10980:53;11050:19;;11282:104:223;10656:419:357;11282:104:223;11168:229;11150:247;11567:21;11603:90;11636:6;11644:7;11653;11662:6;11670:12;11684:8;;11603:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11603:32:223;;-1:-1:-1;;;11603:90:223:i;:::-;11567:126;;11708:19;:17;:19::i;:::-;11704:506;;;11897:6;11884:9;:19;11877:27;;;;:::i;:::-;11926:29;;;;:14;:29;;;;;;;;11925:30;11918:38;;;;:::i;:::-;11704:506;;;11995:9;:14;11987:107;;;;;;;11471:2:357;11987:107:223;;;11453:21:357;11510:2;11490:18;;;11483:30;11549:34;11529:18;;;11522:62;11620:34;11600:18;;;11593:62;11692:18;11671:19;;;11664:47;11728:19;;11987:107:223;11269:484:357;11987:107:223;12117:29;;;;:14;:29;;;;;;;;12109:90;;;;;;;11960:2:357;12109:90:223;;;11942:21:357;11999:2;11979:18;;;11972:30;12038:34;12018:18;;;12011:62;12109:18;12089;;;12082:46;12145:19;;12109:90:223;11758:412:357;12109:90:223;12241:24;12257:7;12241:15;:24::i;:::-;:33;12220:135;;;;;;;12377:2:357;12220:135:223;;;12359:21:357;12416:2;12396:18;;;12389:30;12455:34;12435:18;;;12428:62;12526:34;12506:18;;;12499:62;12598:5;12577:19;;;12570:34;12621:19;;12220:135:223;12175:471:357;12220:135:223;12374:33;;;;:18;:33;;;;;;;;:42;12366:109;;;;;;;12853:2:357;12366:109:223;;;12835:21:357;12892:2;12872:18;;;12865:30;12931:34;12911:18;;;12904:62;13002:24;12982:18;;;12975:52;13044:19;;12366:109:223;12651:418:357;12366:109:223;13169:77;13188:12;13202:43;4991:5;4796:6;13202:43;:::i;:::-;13169:77;;:18;:77::i;:::-;13168:78;:145;;;-1:-1:-1;13266:16:223;;:47;:16;1338:42:192;13266:47:223;;13168:145;13151:919;;;13338:29;;;;:14;:29;;;;;;:36;;;;13370:4;13338:36;;;13393:35;13353:13;;13393:35;;;13908:41;:9;:41;13904:135;;13969:55;;;;;13276:2:357;13969:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;13969:55:223;13074:409:357;13904:135:223;14053:7;;;;13151:919;14080:16;:26;;;;;;;;;;-1:-1:-1;14131:72:223;14145:7;4796:6;14154:9;:30;;;;:::i;:::-;14186:6;14194:8;;14131:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14131:13:223;;-1:-1:-1;;;14131:72:223:i;:::-;14213:16;:46;;;;1338:42:192;14213:46:223;;;14116:87;-1:-1:-1;14270:1101:223;;;;14484:33;;;;:18;:33;;;;;;;;:42;14477:50;;;;:::i;:::-;14541:33;;;;:18;:33;;;;;;:40;;;;14577:4;14541:40;;;14600:29;14560:13;;14600:29;;;14270:1101;;;14660:29;;;;:14;:29;;;;;;:36;;;;14692:4;14660:36;;;14715:35;14675:13;;14715:35;;;15230:41;:9;:41;15226:135;;15291:55;;;;;13276:2:357;15291:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;15291:55:223;13074:409:357;15226:135:223;10537:4840;;;10311:5066;;;;;;;;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;2241::130:-;2358:6;;:196;;;;;:6;;;;;:25;;2392:6;;2358:196;;2420:3;;2392:6;;2476:9;;2358:6;;2538:5;;2358:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:320;;;;:::o;18503:636:223:-;4910:13:27;;;;;;;4902:69;;;;;;;14412:2:357;4902:69:27;;;14394:21:357;14451:2;14431:18;;;14424:30;14490:34;14470:18;;;14463:62;14561:13;14541:18;;;14534:41;14592:19;;4902:69:27;14210:407:357;4902:69:27;18988:16:223::1;::::0;:30:::1;:16;18984:107;;19034:16;:46:::0;;;::::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18503:636::o;3100:305:196:-;3289:7;3329:68;3365:7;3374;3383:5;3390:6;3329:35;:68::i;:::-;3319:79;;;;;;3312:86;;3100:305;;;;;;:::o;3877:375::-;4117:7;4157:87;4193:6;4201:7;4210;4219:6;4227:9;4238:5;4157:35;:87::i;:::-;4147:98;;;;;;4140:105;;3877:375;;;;;;;;:::o;2608:168:130:-;2714:6;;2669:4;;2714:6;;2692:10;:29;:77;;;;-1:-1:-1;2754:14:130;;2725:6;;:17;;;;;;;;2754:14;;;;;2725:6;;;;:15;;:17;;;;;;;;;;;;;;;:6;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;2685:84;;2608:168;:::o;2823:158::-;2897:4;2920:24;;;2939:4;2920:24;;:54;;-1:-1:-1;2967:6:130;;;2948:26;;;2967:6;;2948:26;2920:54;2913:61;2823:158;-1:-1:-1;;2823:158:130:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;1202:536::-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;3073:336:195:-;3264:12;3370:7;3379;3388:5;3395:6;3299:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3073:336:195;;;;;;:::o;3883:516::-;4125:12;4272:6;4292:7;4313;4334:6;4354:9;4377:5;4160:232;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:516:195;;;;;;;;:::o;739:154:357:-;825:42;818:5;814:54;807:5;804:65;794:93;;883:1;880;873:12;794:93;739:154;:::o;898:347::-;949:8;959:6;1013:3;1006:4;998:6;994:17;990:27;980:55;;1031:1;1028;1021:12;980:55;-1:-1:-1;1054:20:357;;1097:18;1086:30;;1083:50;;;1129:1;1126;1119:12;1083:50;1166:4;1158:6;1154:17;1142:29;;1218:3;1211:4;1202:6;1194;1190:19;1186:30;1183:39;1180:59;;;1235:1;1232;1225:12;1180:59;898:347;;;;;:::o;1250:163::-;1317:20;;1377:10;1366:22;;1356:33;;1346:61;;1403:1;1400;1393:12;1346:61;1250:163;;;:::o;1418:616::-;1505:6;1513;1521;1529;1582:2;1570:9;1561:7;1557:23;1553:32;1550:52;;;1598:1;1595;1588:12;1550:52;1637:9;1624:23;1656:31;1681:5;1656:31;:::i;:::-;1706:5;-1:-1:-1;1762:2:357;1747:18;;1734:32;1789:18;1778:30;;1775:50;;;1821:1;1818;1811:12;1775:50;1860:58;1910:7;1901:6;1890:9;1886:22;1860:58;:::i;:::-;1937:8;;-1:-1:-1;1834:84:357;-1:-1:-1;1991:37:357;;-1:-1:-1;2024:2:357;2009:18;;1991:37;:::i;:::-;1981:47;;1418:616;;;;;;;:::o;2232:438::-;2350:6;2358;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;2466:9;2453:23;2485:31;2510:5;2485:31;:::i;:::-;2535:5;-1:-1:-1;2592:2:357;2577:18;;2564:32;2605:33;2564:32;2605:33;:::i;:::-;2657:7;2647:17;;;2232:438;;;;;:::o;2675:531::-;2717:3;2755:5;2749:12;2782:6;2777:3;2770:19;2807:1;2817:162;2831:6;2828:1;2825:13;2817:162;;;2893:4;2949:13;;;2945:22;;2939:29;2921:11;;;2917:20;;2910:59;2846:12;2817:162;;;2997:6;2994:1;2991:13;2988:87;;;3063:1;3056:4;3047:6;3042:3;3038:16;3034:27;3027:38;2988:87;-1:-1:-1;3120:2:357;3108:15;3125:66;3104:88;3095:98;;;;3195:4;3091:109;;2675:531;-1:-1:-1;;2675:531:357:o;3211:220::-;3360:2;3349:9;3342:21;3323:4;3380:45;3421:2;3410:9;3406:18;3398:6;3380:45;:::i;:::-;3372:53;3211:220;-1:-1:-1;;;3211:220:357:o;4121:180::-;4180:6;4233:2;4221:9;4212:7;4208:23;4204:32;4201:52;;;4249:1;4246;4239:12;4201:52;-1:-1:-1;4272:23:357;;4121:180;-1:-1:-1;4121:180:357:o;4306:481::-;4384:6;4392;4400;4453:2;4441:9;4432:7;4428:23;4424:32;4421:52;;;4469:1;4466;4459:12;4421:52;4509:9;4496:23;4542:18;4534:6;4531:30;4528:50;;;4574:1;4571;4564:12;4528:50;4613:58;4663:7;4654:6;4643:9;4639:22;4613:58;:::i;:::-;4690:8;;-1:-1:-1;4587:84:357;-1:-1:-1;4744:37:357;;-1:-1:-1;4777:2:357;4762:18;;4744:37;:::i;:::-;4734:47;;4306:481;;;;;:::o;4792:892::-;4907:6;4915;4923;4931;4939;4947;4955;5008:3;4996:9;4987:7;4983:23;4979:33;4976:53;;;5025:1;5022;5015:12;4976:53;5061:9;5048:23;5038:33;;5121:2;5110:9;5106:18;5093:32;5134:31;5159:5;5134:31;:::i;:::-;5184:5;-1:-1:-1;5241:2:357;5226:18;;5213:32;5254:33;5213:32;5254:33;:::i;:::-;5306:7;-1:-1:-1;5360:2:357;5345:18;;5332:32;;-1:-1:-1;5411:3:357;5396:19;;5383:33;;-1:-1:-1;5467:3:357;5452:19;;5439:33;5495:18;5484:30;;5481:50;;;5527:1;5524;5517:12;5481:50;5566:58;5616:7;5607:6;5596:9;5592:22;5566:58;:::i;:::-;4792:892;;;;-1:-1:-1;4792:892:357;;-1:-1:-1;4792:892:357;;;;5540:84;;-1:-1:-1;;;4792:892:357:o;5871:325::-;5959:6;5954:3;5947:19;6011:6;6004:5;5997:4;5992:3;5988:14;5975:43;;6063:1;6056:4;6047:6;6042:3;6038:16;6034:27;6027:38;5929:3;6185:4;6115:66;6110:2;6102:6;6098:15;6094:88;6089:3;6085:98;6081:109;6074:116;;5871:325;;;;:::o;6201:697::-;6496:6;6485:9;6478:25;6459:4;6522:42;6612:2;6604:6;6600:15;6595:2;6584:9;6580:18;6573:43;6664:2;6656:6;6652:15;6647:2;6636:9;6632:18;6625:43;;6704:6;6699:2;6688:9;6684:18;6677:34;6760:10;6752:6;6748:23;6742:3;6731:9;6727:19;6720:52;6809:3;6803;6792:9;6788:19;6781:32;6830:62;6887:3;6876:9;6872:19;6864:6;6856;6830:62;:::i;:::-;6822:70;6201:697;-1:-1:-1;;;;;;;;;6201:697:357:o;6903:524::-;7155:42;7147:6;7143:55;7132:9;7125:74;7235:3;7230:2;7219:9;7215:18;7208:31;7106:4;7256:62;7313:3;7302:9;7298:19;7290:6;7282;7256:62;:::i;:::-;7248:70;;7354:6;7349:2;7338:9;7334:18;7327:34;7409:10;7401:6;7397:23;7392:2;7381:9;7377:18;7370:51;6903:524;;;;;;;;:::o;8046:277::-;8113:6;8166:2;8154:9;8145:7;8141:23;8137:32;8134:52;;;8182:1;8179;8172:12;8134:52;8214:9;8208:16;8267:5;8260:13;8253:21;8246:5;8243:32;8233:60;;8289:1;8286;8279:12;8750:184;8802:77;8799:1;8792:88;8899:4;8896:1;8889:15;8923:4;8920:1;8913:15;8939:270;8978:7;9010:18;9055:2;9052:1;9048:10;9085:2;9082:1;9078:10;9141:3;9137:2;9133:12;9128:3;9125:21;9118:3;9111:11;9104:19;9100:47;9097:73;;;9150:18;;:::i;:::-;9190:13;;8939:270;-1:-1:-1;;;;8939:270:357:o;9214:353::-;9253:1;9279:18;9324:2;9321:1;9317:10;9346:3;9336:191;;9383:77;9380:1;9373:88;9484:4;9481:1;9474:15;9512:4;9509:1;9502:15;9336:191;9545:10;;9541:20;;;;;9214:353;-1:-1:-1;;9214:353:357:o;9572:236::-;9611:3;9639:18;9684:2;9681:1;9677:10;9714:2;9711:1;9707:10;9745:3;9741:2;9737:12;9732:3;9729:21;9726:47;;;9753:18;;:::i;:::-;9789:13;;9572:236;-1:-1:-1;;;;9572:236:357:o;11080:184::-;11132:77;11129:1;11122:88;11229:4;11226:1;11219:15;11253:4;11250:1;11243:15;13488:125;13528:4;13556:1;13553;13550:8;13547:34;;;13561:18;;:::i;:::-;-1:-1:-1;13598:9:357;;13488:125::o;13618:587::-;13881:42;13873:6;13869:55;13858:9;13851:74;13961:6;13956:2;13945:9;13941:18;13934:34;14016:18;14008:6;14004:31;13999:2;13988:9;13984:18;13977:59;14086:6;14079:14;14072:22;14067:2;14056:9;14052:18;14045:50;14132:3;14126;14115:9;14111:19;14104:32;13832:4;14153:46;14194:3;14183:9;14179:19;14171:6;14153:46;:::i;:::-;14145:54;13618:587;-1:-1:-1;;;;;;;13618:587:357:o;14622:251::-;14692:6;14745:2;14733:9;14724:7;14720:23;14716:32;14713:52;;;14761:1;14758;14751:12;14713:52;14793:9;14787:16;14812:31;14837:5;14812:31;:::i;14878:512::-;15072:4;15101:42;15182:2;15174:6;15170:15;15159:9;15152:34;15234:2;15226:6;15222:15;15217:2;15206:9;15202:18;15195:43;;15274:3;15269:2;15258:9;15254:18;15247:31;15295:46;15336:3;15325:9;15321:19;15313:6;15295:46;:::i;:::-;15287:54;;15377:6;15372:2;15361:9;15357:18;15350:34;14878:512;;;;;;;:::o;15395:656::-;15682:6;15671:9;15664:25;15645:4;15708:42;15798:2;15790:6;15786:15;15781:2;15770:9;15766:18;15759:43;15850:2;15842:6;15838:15;15833:2;15822:9;15818:18;15811:43;;15890:6;15885:2;15874:9;15870:18;15863:34;15934:6;15928:3;15917:9;15913:19;15906:35;15978:3;15972;15961:9;15957:19;15950:32;15999:46;16040:3;16029:9;16025:19;16017:6;15999:46;:::i;:::-;15991:54;15395:656;-1:-1:-1;;;;;;;;15395:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","MIN_GAS_CALLDATA_OVERHEAD()":"028f85f7","MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":"0c568498","MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":"2828d7e8","OTHER_MESSENGER()":"9fce812c","PORTAL()":"0ff754ea","RELAY_CALL_OVERHEAD()":"4c1d6a69","RELAY_CONSTANT_OVERHEAD()":"83a74074","RELAY_GAS_CHECK_BUFFER()":"5644cfdf","RELAY_RESERVED_GAS()":"8cbeeef2","baseGas(bytes,uint32)":"b28ade25","failedMessages(bytes32)":"a4e7f8bd","initialize(address,address)":"485cc955","messageNonce()":"ecc70428","otherMessenger()":"db505d80","paused()":"5c975abb","portal()":"6425666b","relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","sendMessage(address,bytes,uint32)":"3dbb202b","successfulMessages(bytes32)":"b1b1b209","superchainConfig()":"35e80ab3","version()":"54fd4d50","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SentMessageExtension1\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_CALLDATA_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTAL\",\"outputs\":[{\"internalType\":\"contract OptimismPortal\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CALL_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CONSTANT_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_GAS_CHECK_BUFFER\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_RESERVED_GAS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"baseGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"},{\"internalType\":\"contract OptimismPortal\",\"name\":\"_portal\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherMessenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"portal\",\"outputs\":[{\"internalType\":\"contract OptimismPortal\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"successfulMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@title L1CrossDomainMessenger\",\"kind\":\"dev\",\"methods\":{\"OTHER_MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"CrossDomainMessenger contract on the other chain.\"}},\"PORTAL()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the OptimismPortal on this chain.\"}},\"baseGas(bytes,uint32)\":{\"params\":{\"_message\":\"Message to compute the amount of required gas for.\",\"_minGasLimit\":\"Minimum desired gas limit when message goes to target.\"},\"returns\":{\"_0\":\"Amount of gas required to guarantee message receipt.\"}},\"initialize(address,address)\":{\"params\":{\"_portal\":\"Contract of the OptimismPortal contract on this network.\",\"_superchainConfig\":\"Contract of the SuperchainConfig contract on this network.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"params\":{\"_message\":\"Message to send to the target.\",\"_minGasLimit\":\"Minimum amount of gas that the message can be executed with.\",\"_nonce\":\"Nonce of the message being relayed.\",\"_sender\":\"Address of the user who sent the message.\",\"_target\":\"Address that the message is targeted at.\",\"_value\":\"ETH value to send with the message.\"}},\"sendMessage(address,bytes,uint32)\":{\"params\":{\"_message\":\"Message to trigger the target address with.\",\"_minGasLimit\":\"Minimum gas limit that the message can be executed with.\",\"_target\":\"Target contract or wallet address.\"}},\"xDomainMessageSender()\":{\"returns\":{\"_0\":\"Address of the sender of the currently executing message on the other chain.\"}}},\"stateVariables\":{\"portal\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"2.3.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"FailedRelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message fails to be relayed on this chain.\"},\"RelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message is successfully relayed on this chain.\"},\"SentMessage(address,address,bytes,uint256,uint256)\":{\"notice\":\"Emitted whenever a message is sent to the other chain.\"},\"SentMessageExtension1(address,uint256)\":{\"notice\":\"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough.\"}},\"kind\":\"user\",\"methods\":{\"MESSAGE_VERSION()\":{\"notice\":\"Current message version identifier.\"},\"MIN_GAS_CALLDATA_OVERHEAD()\":{\"notice\":\"Extra gas added to base gas for each byte of calldata in a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()\":{\"notice\":\"Denominator for dynamic overhead added to the base gas for a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()\":{\"notice\":\"Numerator for dynamic overhead added to the base gas for a message.\"},\"OTHER_MESSENGER()\":{\"notice\":\"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\"},\"PORTAL()\":{\"notice\":\"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead.\"},\"RELAY_CALL_OVERHEAD()\":{\"notice\":\"Gas reserved for performing the external call in `relayMessage`.\"},\"RELAY_CONSTANT_OVERHEAD()\":{\"notice\":\"Constant overhead added to the base gas for a message.\"},\"RELAY_GAS_CHECK_BUFFER()\":{\"notice\":\"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`.\"},\"RELAY_RESERVED_GAS()\":{\"notice\":\"Gas reserved for finalizing the execution of `relayMessage` after the safe call.\"},\"baseGas(bytes,uint32)\":{\"notice\":\"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely.\"},\"constructor\":{\"notice\":\"Constructs the L1CrossDomainMessenger contract.\"},\"failedMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt.\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\"},\"otherMessenger()\":{\"notice\":\"CrossDomainMessenger contract on the other chain.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"},\"portal()\":{\"notice\":\"Contract of the OptimismPortal.\"},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\"},\"sendMessage(address,bytes,uint32)\":{\"notice\":\"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\"},\"successfulMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.\"},\"superchainConfig()\":{\"notice\":\"Contract of the SuperchainConfig.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"xDomainMessageSender()\":{\"notice\":\"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it.\"}},\"notice\":\"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible for sending and receiving data on the L1 side. Users are encouraged to use this interface instead of interacting with lower-level contracts directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L1CrossDomainMessenger.sol\":\"L1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1CrossDomainMessenger.sol\":{\"keccak256\":\"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1\",\"dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303\",\"dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww\"]},\"src/L1/OptimismPortal.sol\":{\"keccak256\":\"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2\",\"dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce\",\"dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/PortalErrors.sol\":{\"keccak256\":\"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1\",\"dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\",\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"uint256","name":"messageNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false}],"type":"event","name":"SentMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SentMessageExtension1","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTAL","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CALL_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CONSTANT_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_GAS_CHECK_BUFFER","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_RESERVED_GAS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"pure","type":"function","name":"baseGas","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"},{"internalType":"contract OptimismPortal","name":"_portal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"portal","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"OTHER_MESSENGER()":{"custom:legacy":"","returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"custom:legacy":"","returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1CrossDomainMessenger.sol":"L1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1CrossDomainMessenger.sol":{"keccak256":"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06","urls":["bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1","dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18"],"license":"MIT"},"src/L1/L2OutputOracle.sol":{"keccak256":"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42","urls":["bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303","dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww"],"license":"MIT"},"src/L1/OptimismPortal.sol":{"keccak256":"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a","urls":["bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2","dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L1/SystemConfig.sol":{"keccak256":"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a","urls":["bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce","dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/PortalErrors.sol":{"keccak256":"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558","urls":["bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1","dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":108324,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_0_0_20","offset":0,"slot":"0","type":"t_address"},{"astId":46970,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":108331,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_1_0_1600","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":108334,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_51_0_20","offset":0,"slot":"51","type":"t_address"},{"astId":108339,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_52_0_1568","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":108342,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_101_0_1","offset":0,"slot":"101","type":"t_bool"},{"astId":108347,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_102_0_1568","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":108350,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_151_0_32","offset":0,"slot":"151","type":"t_uint256"},{"astId":108355,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_152_0_1568","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":108360,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_201_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108365,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_202_0_32","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108410,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108413,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"xDomainMsgSender","offset":0,"slot":"204","type":"t_address"},{"astId":108416,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"205","type":"t_uint240"},{"astId":108421,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"failedMessages","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108425,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"otherMessenger","offset":0,"slot":"207","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108430,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"__gap","offset":0,"slot":"208","type":"t_array(t_uint256)43_storage"},{"astId":84986,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"superchainConfig","offset":0,"slot":"251","type":"t_contract(SuperchainConfig)88793"},{"astId":84990,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"portal","offset":0,"slot":"252","type":"t_contract(OptimismPortal)87104"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)43_storage":{"encoding":"inplace","label":"uint256[43]","numberOfBytes":"1376","base":"t_uint256"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(OptimismPortal)87104":{"encoding":"inplace","label":"contract OptimismPortal","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."},"SentMessage(address,address,bytes,uint256,uint256)":{"notice":"Emitted whenever a message is sent to the other chain."},"SentMessageExtension1(address,uint256)":{"notice":"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough."}},"notice":"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible for sending and receiving data on the L1 side. Users are encouraged to use this interface instead of interacting with lower-level contracts directly."},"devdoc":{"version":1,"kind":"dev","methods":{"OTHER_MESSENGER()":{"returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}}},"ast":{"absolutePath":"src/L1/L1CrossDomainMessenger.sol","id":85146,"exportedSymbols":{"CrossDomainMessenger":[108888],"ISemver":[109417],"L1CrossDomainMessenger":[85145],"OptimismPortal":[87104],"Predeploys":[104124],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:3102:130","nodes":[{"id":84967,"nodeType":"PragmaDirective","src":"32:23:130","nodes":[],"literals":["solidity","0.8",".15"]},{"id":84969,"nodeType":"ImportDirective","src":"57:58:130","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":84968,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"66:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84971,"nodeType":"ImportDirective","src":"116:59:130","nodes":[],"absolutePath":"src/L1/OptimismPortal.sol","file":"src/L1/OptimismPortal.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":87105,"symbolAliases":[{"foreign":{"id":84970,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"125:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84973,"nodeType":"ImportDirective","src":"176:78:130","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":84972,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"185:20:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84975,"nodeType":"ImportDirective","src":"255:52:130","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":84974,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"264:7:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84977,"nodeType":"ImportDirective","src":"308:63:130","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":84976,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"317:16:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85145,"nodeType":"ContractDefinition","src":"701:2432:130","nodes":[{"id":84986,"nodeType":"VariableDeclaration","src":"822:40:130","nodes":[],"constant":false,"documentation":{"id":84983,"nodeType":"StructuredDocumentation","src":"772:45:130","text":"@notice Contract of the SuperchainConfig."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"846:16:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":84985,"nodeType":"UserDefinedTypeName","pathNode":{"id":84984,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"822:16:130"},"referencedDeclaration":88793,"src":"822:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":84990,"nodeType":"VariableDeclaration","src":"950:28:130","nodes":[],"constant":false,"documentation":{"id":84987,"nodeType":"StructuredDocumentation","src":"869:76:130","text":"@notice Contract of the OptimismPortal.\n @custom:network-specific"},"functionSelector":"6425666b","mutability":"mutable","name":"portal","nameLocation":"972:6:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":84989,"nodeType":"UserDefinedTypeName","pathNode":{"id":84988,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"950:14:130"},"referencedDeclaration":87104,"src":"950:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"public"},{"id":84994,"nodeType":"VariableDeclaration","src":"1048:40:130","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":84991,"nodeType":"StructuredDocumentation","src":"985:58:130","text":"@notice Semantic version.\n @custom:semver 2.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1071:7:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84992,"name":"string","nodeType":"ElementaryTypeName","src":"1048:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e332e30","id":84993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1081:7:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_22fd31a466cd79bdd552fae6268088a4b5436c44416a9eb8cc3035d8d9e397ab","typeString":"literal_string \"2.3.0\""},"value":"2.3.0"},"visibility":"public"},{"id":85019,"nodeType":"FunctionDefinition","src":"1159:163:130","nodes":[],"body":{"id":85018,"nodeType":"Block","src":"1196:126:130","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1263:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1255:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85002,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:130","typeDescriptions":{}}},"id":85005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85001,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"1238:16:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1238:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1300:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85010,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:130","typeDescriptions":{}}},"id":85013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1300:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1292:8:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85008,"name":"address","nodeType":"ElementaryTypeName","src":"1292:8:130","stateMutability":"payable","typeDescriptions":{}}},"id":85014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1292:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85007,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"1277:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptimismPortal_$87104_$","typeString":"type(contract OptimismPortal)"}},"id":85015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1277:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85000,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85047,"src":"1206:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_SuperchainConfig_$88793_$_t_contract$_OptimismPortal_$87104_$returns$__$","typeString":"function (contract SuperchainConfig,contract OptimismPortal)"}},"id":85016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_superchainConfig","_portal"],"nodeType":"FunctionCall","src":"1206:109:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85017,"nodeType":"ExpressionStatement","src":"1206:109:130"}]},"documentation":{"id":84995,"nodeType":"StructuredDocumentation","src":"1095:59:130","text":"@notice Constructs the L1CrossDomainMessenger contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":84998,"kind":"baseConstructorSpecifier","modifierName":{"id":84997,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1173:20:130"},"nodeType":"ModifierInvocation","src":"1173:22:130"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84996,"nodeType":"ParameterList","parameters":[],"src":"1170:2:130"},"returnParameters":{"id":84999,"nodeType":"ParameterList","parameters":[],"src":"1196:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85047,"nodeType":"FunctionDefinition","src":"1542:296:130","nodes":[],"body":{"id":85046,"nodeType":"Block","src":"1641:197:130","nodes":[],"statements":[{"expression":{"id":85033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85031,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"1651:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85032,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85023,"src":"1670:17:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"1651:36:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85034,"nodeType":"ExpressionStatement","src":"1651:36:130"},{"expression":{"id":85037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85035,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"1697:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85036,"name":"_portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85026,"src":"1706:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"src":"1697:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85038,"nodeType":"ExpressionStatement","src":"1697:16:130"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":85041,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1791:10:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":104004,"src":"1791:36:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85040,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1770:20:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:58:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85039,"name":"__CrossDomainMessenger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108852,"src":"1723:27:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":85044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherMessenger"],"nodeType":"FunctionCall","src":"1723:108:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85045,"nodeType":"ExpressionStatement","src":"1723:108:130"}]},"documentation":{"id":85020,"nodeType":"StructuredDocumentation","src":"1328:209:130","text":"@notice Initializes the contract.\n @param _superchainConfig Contract of the SuperchainConfig contract on this network.\n @param _portal Contract of the OptimismPortal contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85029,"kind":"modifierInvocation","modifierName":{"id":85028,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"1629:11:130"},"nodeType":"ModifierInvocation","src":"1629:11:130"}],"name":"initialize","nameLocation":"1551:10:130","parameters":{"id":85027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85023,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1579:17:130","nodeType":"VariableDeclaration","scope":85047,"src":"1562:34:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85022,"nodeType":"UserDefinedTypeName","pathNode":{"id":85021,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1562:16:130"},"referencedDeclaration":88793,"src":"1562:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"},{"constant":false,"id":85026,"mutability":"mutable","name":"_portal","nameLocation":"1613:7:130","nodeType":"VariableDeclaration","scope":85047,"src":"1598:22:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85025,"nodeType":"UserDefinedTypeName","pathNode":{"id":85024,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"1598:14:130"},"referencedDeclaration":87104,"src":"1598:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"1561:60:130"},"returnParameters":{"id":85030,"nodeType":"ParameterList","parameters":[],"src":"1641:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85057,"nodeType":"FunctionDefinition","src":"2107:87:130","nodes":[],"body":{"id":85056,"nodeType":"Block","src":"2164:30:130","nodes":[],"statements":[{"expression":{"id":85054,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2181:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"functionReturnParameters":85053,"id":85055,"nodeType":"Return","src":"2174:13:130"}]},"documentation":{"id":85048,"nodeType":"StructuredDocumentation","src":"1844:258:130","text":"@notice Getter function for the OptimismPortal contract on this chain.\n Public getter is legacy and will be removed in the future. Use `portal()` instead.\n @return Contract of the OptimismPortal on this chain.\n @custom:legacy"},"functionSelector":"0ff754ea","implemented":true,"kind":"function","modifiers":[],"name":"PORTAL","nameLocation":"2116:6:130","parameters":{"id":85049,"nodeType":"ParameterList","parameters":[],"src":"2122:2:130"},"returnParameters":{"id":85053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85057,"src":"2148:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85051,"nodeType":"UserDefinedTypeName","pathNode":{"id":85050,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"2148:14:130"},"referencedDeclaration":87104,"src":"2148:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"2147:16:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":85083,"nodeType":"FunctionDefinition","src":"2241:320:130","nodes":[],"body":{"id":85082,"nodeType":"Block","src":"2348:213:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":85075,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85060,"src":"2420:3:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85076,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2445:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85077,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85062,"src":"2476:9:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"66616c7365","id":85078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2512:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":85079,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85066,"src":"2538:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85070,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2358:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depositTransaction","nodeType":"MemberAccess","referencedDeclaration":87068,"src":"2358:25:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":85073,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2392:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2358:42:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_to","_value","_gasLimit","_isCreation","_data"],"nodeType":"FunctionCall","src":"2358:196:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85081,"nodeType":"ExpressionStatement","src":"2358:196:130"}]},"baseFunctions":[108864],"documentation":{"id":85058,"nodeType":"StructuredDocumentation","src":"2200:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"2250:12:130","overrides":{"id":85068,"nodeType":"OverrideSpecifier","overrides":[],"src":"2339:8:130"},"parameters":{"id":85067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85060,"mutability":"mutable","name":"_to","nameLocation":"2271:3:130","nodeType":"VariableDeclaration","scope":85083,"src":"2263:11:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85059,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85062,"mutability":"mutable","name":"_gasLimit","nameLocation":"2283:9:130","nodeType":"VariableDeclaration","scope":85083,"src":"2276:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2276:6:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":85064,"mutability":"mutable","name":"_value","nameLocation":"2302:6:130","nodeType":"VariableDeclaration","scope":85083,"src":"2294:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85063,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85066,"mutability":"mutable","name":"_data","nameLocation":"2323:5:130","nodeType":"VariableDeclaration","scope":85083,"src":"2310:18:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85065,"name":"bytes","nodeType":"ElementaryTypeName","src":"2310:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2262:67:130"},"returnParameters":{"id":85069,"nodeType":"ParameterList","parameters":[],"src":"2348:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85108,"nodeType":"FunctionDefinition","src":"2608:168:130","nodes":[],"body":{"id":85107,"nodeType":"Block","src":"2675:101:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85090,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2692:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2692:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85094,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2714:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85092,"name":"address","nodeType":"ElementaryTypeName","src":"2706:7:130","typeDescriptions":{}}},"id":85095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2692:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85097,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2725:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l2Sender","nodeType":"MemberAccess","referencedDeclaration":86489,"src":"2725:15:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":85099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85102,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"2754:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2746:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85100,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:130","typeDescriptions":{}}},"id":85103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2725:44:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2692:77:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85089,"id":85106,"nodeType":"Return","src":"2685:84:130"}]},"baseFunctions":[108870],"documentation":{"id":85084,"nodeType":"StructuredDocumentation","src":"2567:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"2617:17:130","overrides":{"id":85086,"nodeType":"OverrideSpecifier","overrides":[],"src":"2651:8:130"},"parameters":{"id":85085,"nodeType":"ParameterList","parameters":[],"src":"2634:2:130"},"returnParameters":{"id":85089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85108,"src":"2669:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85087,"name":"bool","nodeType":"ElementaryTypeName","src":"2669:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2668:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85132,"nodeType":"FunctionDefinition","src":"2823:158:130","nodes":[],"body":{"id":85131,"nodeType":"Block","src":"2903:78:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85117,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2920:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85120,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2939:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}],"id":85119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2931:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85118,"name":"address","nodeType":"ElementaryTypeName","src":"2931:7:130","typeDescriptions":{}}},"id":85121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2931:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2920:24:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85123,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2948:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85126,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2967:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2959:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85124,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:130","typeDescriptions":{}}},"id":85127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2920:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85116,"id":85130,"nodeType":"Return","src":"2913:61:130"}]},"baseFunctions":[108878],"documentation":{"id":85109,"nodeType":"StructuredDocumentation","src":"2782:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"2832:15:130","overrides":{"id":85113,"nodeType":"OverrideSpecifier","overrides":[],"src":"2879:8:130"},"parameters":{"id":85112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85111,"mutability":"mutable","name":"_target","nameLocation":"2856:7:130","nodeType":"VariableDeclaration","scope":85132,"src":"2848:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85110,"name":"address","nodeType":"ElementaryTypeName","src":"2848:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2847:17:130"},"returnParameters":{"id":85116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85132,"src":"2897:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85114,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85144,"nodeType":"FunctionDefinition","src":"3028:103:130","nodes":[],"body":{"id":85143,"nodeType":"Block","src":"3082:49:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85139,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"3099:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"3099:23:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3099:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85138,"id":85142,"nodeType":"Return","src":"3092:32:130"}]},"baseFunctions":[108887],"documentation":{"id":85133,"nodeType":"StructuredDocumentation","src":"2987:36:130","text":"@inheritdoc CrossDomainMessenger"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"3037:6:130","overrides":{"id":85135,"nodeType":"OverrideSpecifier","overrides":[],"src":"3058:8:130"},"parameters":{"id":85134,"nodeType":"ParameterList","parameters":[],"src":"3043:2:130"},"returnParameters":{"id":85138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85144,"src":"3076:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85136,"name":"bool","nodeType":"ElementaryTypeName","src":"3076:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3075:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":84979,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"736:20:130"},"id":84980,"nodeType":"InheritanceSpecifier","src":"736:20:130"},{"baseName":{"id":84981,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"758:7:130"},"id":84982,"nodeType":"InheritanceSpecifier","src":"758:7:130"}],"canonicalName":"L1CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":84978,"nodeType":"StructuredDocumentation","src":"373:328:130","text":"@custom:proxied\n @title L1CrossDomainMessenger\n @notice The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible\n for sending and receiving data on the L1 side. Users are encouraged to use this\n interface instead of interacting with lower-level contracts directly."},"fullyImplemented":true,"linearizedBaseContracts":[85145,109417,108888,108366,47114,108325],"name":"L1CrossDomainMessenger","nameLocation":"710:22:130","scope":85146,"usedErrors":[]}],"license":"MIT"},"id":130} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L1ERC721Bridge.json b/packages/sdk/src/forge-artifacts/L1ERC721Bridge.json new file mode 100644 index 000000000000..e986941bf60b --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L1ERC721Bridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_messenger","type":"address","internalType":"contract CrossDomainMessenger"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b62000234565b600054610100900460ff1615808015620000465750600054600160ff909116105b8062000076575062000063306200018a60201b62000b141760201c565b15801562000076575060005460ff166001145b620000df5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000103576000805461ff0019166101001790555b603280546001600160a01b0319166001600160a01b0384161790556200013e8373420000000000000000000000000000000000001462000199565b801562000185576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620002065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d6565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6113e980620002446000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:131:-:0;;;1492:155;;;;;;;;;-1:-1:-1;1531:109:131::1;1585:1;::::0;1531:10:::1;:109::i;:::-;922:4498:::0;;1869:318;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;1987:16:131::1;:36:::0;;-1:-1:-1;;;;;;1987:36:131::1;-1:-1:-1::0;;;;;1987:36:131;::::1;;::::0;;2033:147:::1;2079:10:::0;786:42:199::1;2033:19:131;:147::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;1869:318:131;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;3212:9:224::1;:22:::0;;-1:-1:-1;;;;;3212:22:224;;::::1;-1:-1:-1::0;;;;;;3212:22:224;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;628:407:357:-;922:4498:131;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1279:40;;;;;;;;;;;;216:42:357;204:55;;;186:74;;174:2;159:18;1279:40:131;;;;;;;;5688:971:224;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;1869:318:131;;;;;;:::i;:::-;;:::i;1389:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2226:103::-;;;:::i;:::-;;;3420:14:357;;3413:22;3395:41;;3383:2;3368:18;2226:103:131;3255:187:357;1134:80:131;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3096:1207;;;;;;:::i;:::-;;:::i;3858:98:224:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;967:33::-;;;;;;;;;5688:971;6472:10;1465:19:59;:23;6444:89:224;;;;;;;6391:2:357;6444:89:224;;;6373:21:357;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;6540:15;6520:18;;;6513:43;6573:19;;6444:89:224;;;;;;;;;6544:108;6566:11;6579:12;6593:10;6605;6617:8;6627:12;6641:10;;6544:21;:108::i;:::-;5688:971;;;;;;:::o;1869:318:131:-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;6805:2:357;3146:190:43;;;6787:21:357;6844:2;6824:18;;;6817:30;6883:34;6863:18;;;6856:62;6954:16;6934:18;;;6927:44;6988:19;;3146:190:43;6603:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1987:16:131::1;:36:::0;;;::::1;;::::0;::::1;;::::0;;2033:147:::1;2079:10:::0;786:42:199::1;2033:19:131;:147::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;7170:36:357;;3531:14:43;;7158:2:357;7143:18;3531:14:43;;;;;;;3457:99;3090:472;1869:318:131;;:::o;2226:103::-;2297:16;;:25;;;;;;;;2274:4;;2297:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2290:32;;2226:103;:::o;3096:1207::-;2669:9:224;;;;2647:10;:32;:92;;;;-1:-1:-1;2727:11:224;;;2683:9;:32;;;;;;;;2727:11;;;;;2683:9;;;;:30;;:32;;;;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;2647:92;2626:202;;;;;;;7957:2:357;2626:202:224;;;7939:21:357;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;8106:33;8086:18;;;8079:61;8157:19;;2626:202:224;7755:427:357;2626:202:224;3359:8:131::1;:6;:8::i;:::-;:17;3351:52;;;::::0;::::1;::::0;;8389:2:357;3351:52:131::1;::::0;::::1;8371:21:357::0;8428:2;8408:18;;;8401:30;8467:24;8447:18;;;8440:52;8509:18;;3351:52:131::1;8187:346:357::0;3351:52:131::1;3444:4;3421:28;::::0;::::1;::::0;3413:83:::1;;;::::0;::::1;::::0;;8740:2:357;3413:83:131::1;::::0;::::1;8722:21:357::0;8779:2;8759:18;;;8752:30;8818:34;8798:18;;;8791:62;8889:12;8869:18;;;8862:40;8919:19;;3413:83:131::1;8538:406:357::0;3413:83:131::1;3620:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;:45;;;;;;;::::1;;:53;;:45:::0;:53:::1;3599:157;;;::::0;::::1;::::0;;9151:2:357;3599:157:131::1;::::0;::::1;9133:21:357::0;9190:2;9170:18;;;9163:30;9229:34;9209:18;;;9202:62;9300:27;9280:18;;;9273:55;9345:19;;3599:157:131::1;8949:421:357::0;3599:157:131::1;3878:21;::::0;;::::1;3926:5;3878:21:::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;:45;;;;;;;;;;:53;;;::::1;::::0;;4053:90;;;;4107:4:::1;4053:90;::::0;::::1;9638:34:357::0;9708:15;;;9688:18;;;9681:43;9740:18;;;9733:34;;;3878:21:131;4053:37:::1;::::0;9550:18:357;;4053:90:131::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4263:5;4214:82;;4249:12;4214:82;;4236:11;4214:82;;;4270:3;4275:8;4285:10;;4214:82;;;;;;;;;:::i;:::-;;;;;;;;3096:1207:::0;;;;;;;:::o;7885:428:224:-;8124:17;;;8116:78;;;;;;;10750:2:357;8116:78:224;;;10732:21:357;10789:2;10769:18;;;10762:30;10828:34;10808:18;;;10801:62;10899:18;10879;;;10872:46;10935:19;;8116:78:224;10548:412:357;8116:78:224;8205:101;8227:11;8240:12;8254:10;8266:3;8271:8;8281:12;8295:10;;8205:21;:101::i;:::-;7885:428;;;;;;;:::o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;4342:1076:131:-;4628:26;;;4620:88;;;;;;;11167:2:357;4620:88:131;;;11149:21:357;11206:2;11186:18;;;11179:30;11245:34;11225:18;;;11218:62;11316:19;11296:18;;;11289:47;11353:19;;4620:88:131;10965:413:357;4620:88:131;4798:20;4857:44;;;4903:12;4917:11;4930:5;4937:3;4942:8;4952:10;;4821:151;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:21;;;;-1:-1:-1;5017:21:131;;;:8;:21;;;;;:35;;;;;;;;;;:45;;;;;;;;;;:52;;;;5065:4;5017:52;;;5079:88;;;;;9656:15:357;;;5079:88:131;;;9638:34:357;5140:4:131;9688:18:357;;;9681:43;9740:18;;;9733:34;;;4821:151:131;;-1:-1:-1;5079:33:131;;9550:18:357;;5079:88:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5211:9:131;;5252:11;;5211:103;;;;;:9;;;;;-1:-1:-1;5211:21:131;;-1:-1:-1;5211:103:131;;5252:11;;;;5276:7;;5299:12;;5211:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5378:5;5329:82;;5364:12;5329:82;;5351:11;5329:82;;;5385:3;5390:8;5400:10;;5329:82;;;;;;;;;:::i;:::-;;;;;;;;4610:808;4342:1076;;;;;;;;:::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;;;;12719:2:357;4880:69:43;;;12701:21:357;12758:2;12738:18;;;12731:30;12797:34;12777:18;;;12770:62;12868:13;12848:18;;;12841:41;12899:19;;4880:69:43;12517:407:357;4880:69:43;3212:9:224::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;271:154:357:-;357:42;350:5;346:54;339:5;336:65;326:93;;415:1;412;405:12;326:93;271:154;:::o;430:163::-;497:20;;557:10;546:22;;536:33;;526:61;;583:1;580;573:12;526:61;430:163;;;:::o;598:347::-;649:8;659:6;713:3;706:4;698:6;694:17;690:27;680:55;;731:1;728;721:12;680:55;-1:-1:-1;754:20:357;;797:18;786:30;;783:50;;;829:1;826;819:12;783:50;866:4;858:6;854:17;842:29;;918:3;911:4;902:6;894;890:19;886:30;883:39;880:59;;;935:1;932;925:12;880:59;598:347;;;;;:::o;950:827::-;1055:6;1063;1071;1079;1087;1095;1148:3;1136:9;1127:7;1123:23;1119:33;1116:53;;;1165:1;1162;1155:12;1116:53;1204:9;1191:23;1223:31;1248:5;1223:31;:::i;:::-;1273:5;-1:-1:-1;1330:2:357;1315:18;;1302:32;1343:33;1302:32;1343:33;:::i;:::-;1395:7;-1:-1:-1;1449:2:357;1434:18;;1421:32;;-1:-1:-1;1472:37:357;1505:2;1490:18;;1472:37;:::i;:::-;1462:47;;1560:3;1549:9;1545:19;1532:33;1588:18;1580:6;1577:30;1574:50;;;1620:1;1617;1610:12;1574:50;1659:58;1709:7;1700:6;1689:9;1685:22;1659:58;:::i;:::-;950:827;;;;-1:-1:-1;950:827:357;;-1:-1:-1;950:827:357;;1736:8;;950:827;-1:-1:-1;;;950:827:357:o;2044:445::-;2169:6;2177;2230:2;2218:9;2209:7;2205:23;2201:32;2198:52;;;2246:1;2243;2236:12;2198:52;2285:9;2272:23;2304:31;2329:5;2304:31;:::i;:::-;2354:5;-1:-1:-1;2411:2:357;2396:18;;2383:32;2424:33;2383:32;2424:33;:::i;:::-;2476:7;2466:17;;;2044:445;;;;;:::o;2494:531::-;2536:3;2574:5;2568:12;2601:6;2596:3;2589:19;2626:1;2636:162;2650:6;2647:1;2644:13;2636:162;;;2712:4;2768:13;;;2764:22;;2758:29;2740:11;;;2736:20;;2729:59;2665:12;2636:162;;;2816:6;2813:1;2810:13;2807:87;;;2882:1;2875:4;2866:6;2861:3;2857:16;2853:27;2846:38;2807:87;-1:-1:-1;2939:2:357;2927:15;2944:66;2923:88;2914:98;;;;3014:4;2910:109;;2494:531;-1:-1:-1;;2494:531:357:o;3030:220::-;3179:2;3168:9;3161:21;3142:4;3199:45;3240:2;3229:9;3225:18;3217:6;3199:45;:::i;:::-;3191:53;3030:220;-1:-1:-1;;;3030:220:357:o;3447:456::-;3524:6;3532;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3648:9;3635:23;3667:31;3692:5;3667:31;:::i;:::-;3717:5;-1:-1:-1;3774:2:357;3759:18;;3746:32;3787:33;3746:32;3787:33;:::i;:::-;3447:456;;3839:7;;-1:-1:-1;;;3893:2:357;3878:18;;;;3865:32;;3447:456::o;3908:1038::-;4023:6;4031;4039;4047;4055;4063;4071;4124:3;4112:9;4103:7;4099:23;4095:33;4092:53;;;4141:1;4138;4131:12;4092:53;4180:9;4167:23;4199:31;4224:5;4199:31;:::i;:::-;4249:5;-1:-1:-1;4306:2:357;4291:18;;4278:32;4319:33;4278:32;4319:33;:::i;:::-;4371:7;-1:-1:-1;4430:2:357;4415:18;;4402:32;4443:33;4402:32;4443:33;:::i;:::-;4495:7;-1:-1:-1;4554:2:357;4539:18;;4526:32;4567:33;4526:32;4567:33;:::i;:::-;4619:7;-1:-1:-1;4673:3:357;4658:19;;4645:33;;-1:-1:-1;4729:3:357;4714:19;;4701:33;4757:18;4746:30;;4743:50;;;4789:1;4786;4779:12;4743:50;4828:58;4878:7;4869:6;4858:9;4854:22;4828:58;:::i;:::-;3908:1038;;;;-1:-1:-1;3908:1038:357;;-1:-1:-1;3908:1038:357;;;;4802:84;;-1:-1:-1;;;3908:1038:357:o;5215:969::-;5329:6;5337;5345;5353;5361;5369;5377;5430:3;5418:9;5409:7;5405:23;5401:33;5398:53;;;5447:1;5444;5437:12;5398:53;5486:9;5473:23;5505:31;5530:5;5505:31;:::i;:::-;5555:5;-1:-1:-1;5612:2:357;5597:18;;5584:32;5625:33;5584:32;5625:33;:::i;:::-;5677:7;-1:-1:-1;5736:2:357;5721:18;;5708:32;5749:33;5708:32;5749:33;:::i;:::-;5801:7;-1:-1:-1;5855:2:357;5840:18;;5827:32;;-1:-1:-1;5878:38:357;5911:3;5896:19;;5878:38;:::i;:::-;5868:48;;5967:3;5956:9;5952:19;5939:33;5995:18;5987:6;5984:30;5981:50;;;6027:1;6024;6017:12;7217:277;7284:6;7337:2;7325:9;7316:7;7312:23;7308:32;7305:52;;;7353:1;7350;7343:12;7305:52;7385:9;7379:16;7438:5;7431:13;7424:21;7417:5;7414:32;7404:60;;7460:1;7457;7450:12;7499:251;7569:6;7622:2;7610:9;7601:7;7597:23;7593:32;7590:52;;;7638:1;7635;7628:12;7590:52;7670:9;7664:16;7689:31;7714:5;7689:31;:::i;9778:325::-;9866:6;9861:3;9854:19;9918:6;9911:5;9904:4;9899:3;9895:14;9882:43;;9970:1;9963:4;9954:6;9949:3;9945:16;9941:27;9934:38;9836:3;10092:4;10022:66;10017:2;10009:6;10005:15;10001:88;9996:3;9992:98;9988:109;9981:116;;9778:325;;;;:::o;10108:435::-;10333:42;10325:6;10321:55;10310:9;10303:74;10413:6;10408:2;10397:9;10393:18;10386:34;10456:2;10451;10440:9;10436:18;10429:30;10284:4;10476:61;10533:2;10522:9;10518:18;10510:6;10502;10476:61;:::i;:::-;10468:69;10108:435;-1:-1:-1;;;;;;10108:435:357:o;11383:700::-;11643:4;11672:42;11753:2;11745:6;11741:15;11730:9;11723:34;11805:2;11797:6;11793:15;11788:2;11777:9;11773:18;11766:43;11857:2;11849:6;11845:15;11840:2;11829:9;11825:18;11818:43;11909:2;11901:6;11897:15;11892:2;11881:9;11877:18;11870:43;;11950:6;11944:3;11933:9;11929:19;11922:35;11994:3;11988;11977:9;11973:19;11966:32;12015:62;12072:3;12061:9;12057:19;12049:6;12041;12015:62;:::i;:::-;12007:70;11383:700;-1:-1:-1;;;;;;;;;11383:700:357:o;12088:424::-;12301:42;12293:6;12289:55;12278:9;12271:74;12381:2;12376;12365:9;12361:18;12354:30;12252:4;12401:45;12442:2;12431:9;12427:18;12419:6;12401:45;:::i;:::-;12393:53;;12494:10;12486:6;12482:23;12477:2;12466:9;12462:18;12455:51;12088:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","deposits(address,address,uint256)":"5d93a3fc","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address,address)":"485cc955","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","superchainConfig()":"35e80ab3","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Messenger contract on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_to\":\"Address to receive the token on the other domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_from\":\"Address that triggered the bridge on the other domain.\",\"_localToken\":\"Address of the ERC721 token on this domain.\",\"_remoteToken\":\"Address of the ERC721 token on the other domain.\",\"_to\":\"Address to receive the token on this domain.\",\"_tokenId\":\"ID of the token being deposited.\"}},\"initialize(address,address)\":{\"params\":{\"_messenger\":\"Contract of the CrossDomainMessenger on this network.\",\"_superchainConfig\":\"Contract of the SuperchainConfig contract on this network.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"2.1.0\"}},\"title\":\"L1ERC721Bridge\",\"version\":1},\"userdoc\":{\"events\":{\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge from the other network is finalized.\"},\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge to the other network is initiated.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\"},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\"},\"constructor\":{\"notice\":\"Constructs the L1ERC721Bridge contract.\"},\"deposits(address,address,uint256)\":{\"notice\":\"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token.\"},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"notice\":\"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain.\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Contract of the bridge on the other network.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"},\"superchainConfig()\":{\"notice\":\"Address of the SuperchainConfig contract.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as an escrow for ERC721 tokens deposited into L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L1ERC721Bridge.sol\":\"L1ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1ERC721Bridge.sol\":{\"keccak256\":\"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db\",\"dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L2/L2ERC721Bridge.sol\":{\"keccak256\":\"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f\",\"dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/ERC721Bridge.sol\":{\"keccak256\":\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\",\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\",\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[{"internalType":"contract CrossDomainMessenger","name":"_messenger","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address,address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1ERC721Bridge.sol":"L1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1ERC721Bridge.sol":{"keccak256":"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd","urls":["bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db","dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L2/L2ERC721Bridge.sol":{"keccak256":"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9","urls":["bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f","dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":108906,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":108910,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108914,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)111675"},{"astId":108919,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"},{"astId":85179,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"deposits","offset":0,"slot":"49","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))"},{"astId":85183,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"superchainConfig","offset":0,"slot":"50","type":"t_contract(SuperchainConfig)88793"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(uint256 => bool)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_uint256,t_bool))"},"t_mapping(t_address,t_mapping(t_uint256,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_bool)"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address,address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}},"notice":"The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as an escrow for ERC721 tokens deposited into L2."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L1ERC721Bridge"},"ast":{"absolutePath":"src/L1/L1ERC721Bridge.sol","id":85419,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ERC721Bridge":[109118],"IERC721":[52560],"ISemver":[109417],"L1ERC721Bridge":[85418],"L2ERC721Bridge":[90723],"Predeploys":[104124],"StandardBridge":[111675],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:5389:131","nodes":[{"id":85147,"nodeType":"PragmaDirective","src":"32:23:131","nodes":[],"literals":["solidity","0.8",".15"]},{"id":85149,"nodeType":"ImportDirective","src":"57:62:131","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":109119,"symbolAliases":[{"foreign":{"id":85148,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109118,"src":"66:12:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85151,"nodeType":"ImportDirective","src":"120:75:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":52561,"symbolAliases":[{"foreign":{"id":85150,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"129:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85153,"nodeType":"ImportDirective","src":"196:59:131","nodes":[],"absolutePath":"src/L2/L2ERC721Bridge.sol","file":"src/L2/L2ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":90724,"symbolAliases":[{"foreign":{"id":85152,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90723,"src":"205:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85155,"nodeType":"ImportDirective","src":"256:52:131","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":85154,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"265:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85157,"nodeType":"ImportDirective","src":"309:58:131","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":85156,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"318:10:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85159,"nodeType":"ImportDirective","src":"368:78:131","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":85158,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"377:20:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85161,"nodeType":"ImportDirective","src":"447:66:131","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":85160,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"456:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85163,"nodeType":"ImportDirective","src":"514:56:131","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":85162,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"523:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85165,"nodeType":"ImportDirective","src":"571:63:131","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":85164,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"580:16:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85418,"nodeType":"ContractDefinition","src":"922:4498:131","nodes":[{"id":85179,"nodeType":"VariableDeclaration","src":"1134:80:131","nodes":[],"constant":false,"documentation":{"id":85171,"nodeType":"StructuredDocumentation","src":"977:152:131","text":"@notice Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token\n by ID was deposited for a given L2 token."},"functionSelector":"5d93a3fc","mutability":"mutable","name":"deposits","nameLocation":"1206:8:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"typeName":{"id":85178,"keyType":{"id":85172,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1134:64:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"valueType":{"id":85177,"keyType":{"id":85173,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1153:44:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueType":{"id":85176,"keyType":{"id":85174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1180:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1172:24:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":85175,"name":"bool","nodeType":"ElementaryTypeName","src":"1191:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"public"},{"id":85183,"nodeType":"VariableDeclaration","src":"1279:40:131","nodes":[],"constant":false,"documentation":{"id":85180,"nodeType":"StructuredDocumentation","src":"1221:53:131","text":"@notice Address of the SuperchainConfig contract."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"1303:16:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85182,"nodeType":"UserDefinedTypeName","pathNode":{"id":85181,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1279:16:131"},"referencedDeclaration":88793,"src":"1279:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":85187,"nodeType":"VariableDeclaration","src":"1389:40:131","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":85184,"nodeType":"StructuredDocumentation","src":"1326:58:131","text":"@notice Semantic version.\n @custom:semver 2.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1412:7:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85185,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e312e30","id":85186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1422:7:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb4aeded157fe72f9bc813a9dc1bd69961c5b5f35dafc6dc601ab742eacac6b","typeString":"literal_string \"2.1.0\""},"value":"2.1.0"},"visibility":"public"},{"id":85209,"nodeType":"FunctionDefinition","src":"1492:155:131","nodes":[],"body":{"id":85208,"nodeType":"Block","src":"1521:126:131","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1577:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85195,"name":"address","nodeType":"ElementaryTypeName","src":"1577:7:131","typeDescriptions":{}}},"id":85198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1577:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85194,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1556:20:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1556:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"hexValue":"30","id":85203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1626:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85201,"name":"address","nodeType":"ElementaryTypeName","src":"1626:7:131","typeDescriptions":{}}},"id":85204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85200,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"1609:16:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1609:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}],"id":85193,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85237,"src":"1531:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_SuperchainConfig_$88793_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract SuperchainConfig)"}},"id":85206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_superchainConfig"],"nodeType":"FunctionCall","src":"1531:109:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85207,"nodeType":"ExpressionStatement","src":"1531:109:131"}]},"documentation":{"id":85188,"nodeType":"StructuredDocumentation","src":"1436:51:131","text":"@notice Constructs the L1ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":85191,"kind":"baseConstructorSpecifier","modifierName":{"id":85190,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1506:12:131"},"nodeType":"ModifierInvocation","src":"1506:14:131"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85189,"nodeType":"ParameterList","parameters":[],"src":"1503:2:131"},"returnParameters":{"id":85192,"nodeType":"ParameterList","parameters":[],"src":"1521:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85237,"nodeType":"FunctionDefinition","src":"1869:318:131","nodes":[],"body":{"id":85236,"nodeType":"Block","src":"1977:210:131","nodes":[],"statements":[{"expression":{"id":85223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85221,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85183,"src":"1987:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85222,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85216,"src":"2006:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"1987:36:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85224,"nodeType":"ExpressionStatement","src":"1987:36:131"},{"expression":{"arguments":[{"id":85226,"name":"_messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85213,"src":"2079:10:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"expression":{"id":85230,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2140:10:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_ERC721_BRIDGE","nodeType":"MemberAccess","referencedDeclaration":104012,"src":"2140:27:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2132:8:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85228,"name":"address","nodeType":"ElementaryTypeName","src":"2132:8:131","stateMutability":"payable","typeDescriptions":{}}},"id":85232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2132:36:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85227,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"2117:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":85233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2117:52:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85225,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108995,"src":"2033:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":85234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"2033:147:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85235,"nodeType":"ExpressionStatement","src":"2033:147:131"}]},"documentation":{"id":85210,"nodeType":"StructuredDocumentation","src":"1653:211:131","text":"@notice Initializes the contract.\n @param _messenger Contract of the CrossDomainMessenger on this network.\n @param _superchainConfig Contract of the SuperchainConfig contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85219,"kind":"modifierInvocation","modifierName":{"id":85218,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"1965:11:131"},"nodeType":"ModifierInvocation","src":"1965:11:131"}],"name":"initialize","nameLocation":"1878:10:131","parameters":{"id":85217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85213,"mutability":"mutable","name":"_messenger","nameLocation":"1910:10:131","nodeType":"VariableDeclaration","scope":85237,"src":"1889:31:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":85212,"nodeType":"UserDefinedTypeName","pathNode":{"id":85211,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1889:20:131"},"referencedDeclaration":108888,"src":"1889:20:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"},{"constant":false,"id":85216,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1939:17:131","nodeType":"VariableDeclaration","scope":85237,"src":"1922:34:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85215,"nodeType":"UserDefinedTypeName","pathNode":{"id":85214,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1922:16:131"},"referencedDeclaration":88793,"src":"1922:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"}],"src":"1888:69:131"},"returnParameters":{"id":85220,"nodeType":"ParameterList","parameters":[],"src":"1977:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85249,"nodeType":"FunctionDefinition","src":"2226:103:131","nodes":[],"body":{"id":85248,"nodeType":"Block","src":"2280:49:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85244,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85183,"src":"2297:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"2297:23:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2297:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85243,"id":85247,"nodeType":"Return","src":"2290:32:131"}]},"baseFunctions":[109024],"documentation":{"id":85238,"nodeType":"StructuredDocumentation","src":"2193:28:131","text":"@inheritdoc ERC721Bridge"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"2235:6:131","overrides":{"id":85240,"nodeType":"OverrideSpecifier","overrides":[],"src":"2256:8:131"},"parameters":{"id":85239,"nodeType":"ParameterList","parameters":[],"src":"2241:2:131"},"returnParameters":{"id":85243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85249,"src":"2274:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85241,"name":"bool","nodeType":"ElementaryTypeName","src":"2274:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2273:6:131"},"scope":85418,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":85330,"nodeType":"FunctionDefinition","src":"3096:1207:131","nodes":[],"body":{"id":85329,"nodeType":"Block","src":"3341:962:131","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":85268,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[85249],"referencedDeclaration":85249,"src":"3359:6:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":85269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3359:8:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":85270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3371:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3359:17:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20706175736564","id":85272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3378:24:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \"L1ERC721Bridge: paused\""},"value":"L1ERC721Bridge: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \"L1ERC721Bridge: paused\""}],"id":85267,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3351:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3351:52:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85274,"nodeType":"ExpressionStatement","src":"3351:52:131"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85276,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3421:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":85279,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3444:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3436:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85277,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:131","typeDescriptions":{}}},"id":85280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3421:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":85282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3451:44:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \"L1ERC721Bridge: local token cannot be self\""},"value":"L1ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \"L1ERC721Bridge: local token cannot be self\""}],"id":85275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3413:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3413:83:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85284,"nodeType":"ExpressionStatement","src":"3413:83:131"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85286,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"3620:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85288,"indexExpression":{"id":85287,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3629:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":85290,"indexExpression":{"id":85289,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"3642:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85292,"indexExpression":{"id":85291,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"3656:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":85293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3669:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3620:53:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20546f6b656e204944206973206e6f7420657363726f77656420696e20746865204c3120427269646765","id":85295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3687:59:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\""},"value":"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\""}],"id":85285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3599:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3599:157:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85297,"nodeType":"ExpressionStatement","src":"3599:157:131"},{"expression":{"id":85306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85298,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"3878:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85302,"indexExpression":{"id":85299,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3887:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":85303,"indexExpression":{"id":85300,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"3900:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85304,"indexExpression":{"id":85301,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"3914:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3878:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":85305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3926:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3878:53:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85307,"nodeType":"ExpressionStatement","src":"3878:53:131"},{"expression":{"arguments":[{"arguments":[{"id":85314,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4107:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4099:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85312,"name":"address","nodeType":"ElementaryTypeName","src":"4099:7:131","typeDescriptions":{}}},"id":85315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4099:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85316,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85258,"src":"4118:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85317,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"4132:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":85309,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"4061:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85308,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"4053:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$52560_$","typeString":"type(contract IERC721)"}},"id":85310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4053:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$52560","typeString":"contract IERC721"}},"id":85311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":52515,"src":"4053:37:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":85318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"4053:90:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85319,"nodeType":"ExpressionStatement","src":"4053:90:131"},{"eventCall":{"arguments":[{"id":85321,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"4236:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85322,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"4249:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85323,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85256,"src":"4263:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85324,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85258,"src":"4270:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85325,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"4275:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85326,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85262,"src":"4285:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85320,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108949,"src":"4214:21:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85328,"nodeType":"EmitStatement","src":"4209:87:131"}]},"documentation":{"id":85250,"nodeType":"StructuredDocumentation","src":"2335:756:131","text":"@notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the\n recipient on this domain.\n @param _localToken Address of the ERC721 token on this domain.\n @param _remoteToken Address of the ERC721 token on the other domain.\n @param _from Address that triggered the bridge on the other domain.\n @param _to Address to receive the token on this domain.\n @param _tokenId ID of the token being deposited.\n @param _extraData Optional data to forward to L2.\n Data supplied here will not be used to execute any code on L2 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":85265,"kind":"modifierInvocation","modifierName":{"id":85264,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":108974,"src":"3321:15:131"},"nodeType":"ModifierInvocation","src":"3321:15:131"}],"name":"finalizeBridgeERC721","nameLocation":"3105:20:131","parameters":{"id":85263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85252,"mutability":"mutable","name":"_localToken","nameLocation":"3143:11:131","nodeType":"VariableDeclaration","scope":85330,"src":"3135:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85251,"name":"address","nodeType":"ElementaryTypeName","src":"3135:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85254,"mutability":"mutable","name":"_remoteToken","nameLocation":"3172:12:131","nodeType":"VariableDeclaration","scope":85330,"src":"3164:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85253,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85256,"mutability":"mutable","name":"_from","nameLocation":"3202:5:131","nodeType":"VariableDeclaration","scope":85330,"src":"3194:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85255,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85258,"mutability":"mutable","name":"_to","nameLocation":"3225:3:131","nodeType":"VariableDeclaration","scope":85330,"src":"3217:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85257,"name":"address","nodeType":"ElementaryTypeName","src":"3217:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85260,"mutability":"mutable","name":"_tokenId","nameLocation":"3246:8:131","nodeType":"VariableDeclaration","scope":85330,"src":"3238:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3238:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85262,"mutability":"mutable","name":"_extraData","nameLocation":"3279:10:131","nodeType":"VariableDeclaration","scope":85330,"src":"3264:25:131","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85261,"name":"bytes","nodeType":"ElementaryTypeName","src":"3264:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3125:170:131"},"returnParameters":{"id":85266,"nodeType":"ParameterList","parameters":[],"src":"3341:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":85417,"nodeType":"FunctionDefinition","src":"4342:1076:131","nodes":[],"body":{"id":85416,"nodeType":"Block","src":"4610:808:131","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85350,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"4628:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":85353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4652:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4644:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85351,"name":"address","nodeType":"ElementaryTypeName","src":"4644:7:131","typeDescriptions":{}}},"id":85354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4644:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:26:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":85356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4656:51:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \"L1ERC721Bridge: remote token cannot be address(0)\""},"value":"L1ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \"L1ERC721Bridge: remote token cannot be address(0)\""}],"id":85349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4620:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4620:88:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85358,"nodeType":"ExpressionStatement","src":"4620:88:131"},{"assignments":[85360],"declarations":[{"constant":false,"id":85360,"mutability":"mutable","name":"message","nameLocation":"4811:7:131","nodeType":"VariableDeclaration","scope":85416,"src":"4798:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85359,"name":"bytes","nodeType":"ElementaryTypeName","src":"4798:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":85373,"initialValue":{"arguments":[{"expression":{"expression":{"id":85363,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90723,"src":"4857:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2ERC721Bridge_$90723_$","typeString":"type(contract L2ERC721Bridge)"}},"id":85364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":90622,"src":"4857:35:131","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L2ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":85365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4857:44:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":85366,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"4903:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85367,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"4917:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85368,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"4930:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85369,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85339,"src":"4937:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85370,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"4942:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85371,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85345,"src":"4952:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":85361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4821:3:131","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":85362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4821:22:131","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":85372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4821:151:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4798:174:131"},{"expression":{"id":85382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85374,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"5017:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85378,"indexExpression":{"id":85375,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5026:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":85379,"indexExpression":{"id":85376,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"5039:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85380,"indexExpression":{"id":85377,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5053:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5017:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":85381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5065:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5017:52:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85383,"nodeType":"ExpressionStatement","src":"5017:52:131"},{"expression":{"arguments":[{"id":85388,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"5121:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":85391,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5140:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5132:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85389,"name":"address","nodeType":"ElementaryTypeName","src":"5132:7:131","typeDescriptions":{}}},"id":85392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5132:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85393,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5156:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":85385,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5087:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85384,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"5079:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$52560_$","typeString":"type(contract IERC721)"}},"id":85386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5079:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$52560","typeString":"contract IERC721"}},"id":85387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":52525,"src":"5079:33:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":85394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"5079:88:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85395,"nodeType":"ExpressionStatement","src":"5079:88:131"},{"expression":{"arguments":[{"arguments":[{"id":85401,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108914,"src":"5252:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5244:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85399,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:131","typeDescriptions":{}}},"id":85402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5244:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85403,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85360,"src":"5276:7:131","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":85404,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85343,"src":"5299:12:131","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":85396,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108910,"src":"5211:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"id":85398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":108520,"src":"5211:21:131","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":85405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5211:103:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85406,"nodeType":"ExpressionStatement","src":"5211:103:131"},{"eventCall":{"arguments":[{"id":85408,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5351:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85409,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"5364:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85410,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"5378:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85411,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85339,"src":"5385:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85412,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5390:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85413,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85345,"src":"5400:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85407,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108934,"src":"5329:21:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5329:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85415,"nodeType":"EmitStatement","src":"5324:87:131"}]},"baseFunctions":[109117],"documentation":{"id":85331,"nodeType":"StructuredDocumentation","src":"4309:28:131","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4351:21:131","overrides":{"id":85347,"nodeType":"OverrideSpecifier","overrides":[],"src":"4597:8:131"},"parameters":{"id":85346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85333,"mutability":"mutable","name":"_localToken","nameLocation":"4390:11:131","nodeType":"VariableDeclaration","scope":85417,"src":"4382:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85332,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85335,"mutability":"mutable","name":"_remoteToken","nameLocation":"4419:12:131","nodeType":"VariableDeclaration","scope":85417,"src":"4411:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85334,"name":"address","nodeType":"ElementaryTypeName","src":"4411:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85337,"mutability":"mutable","name":"_from","nameLocation":"4449:5:131","nodeType":"VariableDeclaration","scope":85417,"src":"4441:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85336,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85339,"mutability":"mutable","name":"_to","nameLocation":"4472:3:131","nodeType":"VariableDeclaration","scope":85417,"src":"4464:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85338,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85341,"mutability":"mutable","name":"_tokenId","nameLocation":"4493:8:131","nodeType":"VariableDeclaration","scope":85417,"src":"4485:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85340,"name":"uint256","nodeType":"ElementaryTypeName","src":"4485:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85343,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4518:12:131","nodeType":"VariableDeclaration","scope":85417,"src":"4511:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85342,"name":"uint32","nodeType":"ElementaryTypeName","src":"4511:6:131","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85345,"mutability":"mutable","name":"_extraData","nameLocation":"4555:10:131","nodeType":"VariableDeclaration","scope":85417,"src":"4540:25:131","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85344,"name":"bytes","nodeType":"ElementaryTypeName","src":"4540:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4372:199:131"},"returnParameters":{"id":85348,"nodeType":"ParameterList","parameters":[],"src":"4610:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":85167,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"949:12:131"},"id":85168,"nodeType":"InheritanceSpecifier","src":"949:12:131"},{"baseName":{"id":85169,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"963:7:131"},"id":85170,"nodeType":"InheritanceSpecifier","src":"963:7:131"}],"canonicalName":"L1ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":85166,"nodeType":"StructuredDocumentation","src":"636:286:131","text":"@title L1ERC721Bridge\n @notice The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to\n make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\n acts as an escrow for ERC721 tokens deposited into L2."},"fullyImplemented":true,"linearizedBaseContracts":[85418,109417,109118,49678],"name":"L1ERC721Bridge","nameLocation":"931:14:131","scope":85419,"usedErrors":[]}],"license":"MIT"},"id":131} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L1StandardBridge.json b/packages/sdk/src/forge-artifacts/L1StandardBridge.json new file mode 100644 index 000000000000..41a38e7d7097 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L1StandardBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC20To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeETH","inputs":[{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"bridgeETHTo","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositERC20","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositERC20To","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositETH","inputs":[{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositETHTo","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"finalizeERC20Withdrawal","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeETHWithdrawal","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"initialize","inputs":[{"name":"_messenger","type":"address","internalType":"contract CrossDomainMessenger"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2TokenBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC20BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20DepositInitiated","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20WithdrawalFinalized","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHBridgeFinalized","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHBridgeInitiated","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHDepositInitiated","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHWithdrawalFinalized","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b62000234565b600054610100900460ff1615808015620000465750600054600160ff909116105b8062000076575062000063306200018a60201b620005511760201c565b15801562000076575060005460ff166001145b620000df5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000103576000805461ff0019166101001790555b603280546001600160a01b0319166001600160a01b0384161790556200013e8373420000000000000000000000000000000000001062000199565b801562000185576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620002065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d6565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b612c4d80620002446000396000f3fe6080604052600436106101795760003560e01c80637f46ddb2116100cb578063927ede2d1161007f578063b1a1a88211610059578063b1a1a882146104fe578063c89701a214610511578063e11013dd1461053e57600080fd5b8063927ede2d146104a05780639a2ac6d5146104cb578063a9f9e675146104de57600080fd5b806387087623116100b0578063870876231461043a5780638f601f661461045a57806391c49bf8146103ef57600080fd5b80637f46ddb2146103ef578063838b25201461041a57600080fd5b80633cb747bf1161012d57806354fd4d501161010757806354fd4d501461035457806358a997f6146103aa5780635c975abb146103ca57600080fd5b80633cb747bf146102e7578063485cc95514610314578063540abf731461033457600080fd5b80631532ec341161015e5780631532ec341461026a5780631635f5fd1461027d57806335e80ab31461029057600080fd5b80630166a07a1461023757806309fc88431461025757600080fd5b3661023257333b15610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b610230333362030d406040518060200160405280600081525061056d565b005b600080fd5b34801561024357600080fd5b506102306102523660046126b1565b610580565b610230610265366004612762565b61099a565b6102306102783660046127b5565b610a71565b61023061028b3660046127b5565b610a85565b34801561029c57600080fd5b506032546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102f357600080fd5b506003546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561032057600080fd5b5061023061032f366004612828565b610f4e565b34801561034057600080fd5b5061023061034f366004612861565b611137565b34801561036057600080fd5b5061039d6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516102de919061294e565b3480156103b657600080fd5b506102306103c5366004612961565b61117c565b3480156103d657600080fd5b506103df611250565b60405190151581526020016102de565b3480156103fb57600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff166102bd565b34801561042657600080fd5b50610230610435366004612861565b6112e9565b34801561044657600080fd5b50610230610455366004612961565b61132e565b34801561046657600080fd5b50610492610475366004612828565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102de565b3480156104ac57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff166102bd565b6102306104d93660046129e4565b611402565b3480156104ea57600080fd5b506102306104f93660046126b1565b611444565b61023061050c366004612762565b611453565b34801561051d57600080fd5b506004546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b61023061054c3660046129e4565b611524565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61057a8484348585611567565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610653575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190612a47565b73ffffffffffffffffffffffffffffffffffffffff16145b610705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610209565b61070d611250565b15610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a20706175736564000000000000000000006044820152606401610209565b61077d87611731565b156108cb5761078c8787611793565b61083e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a401610209565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156108ae57600080fd5b505af11580156108c2573d6000803e3d6000fd5b5050505061094d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054610909908490612a93565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561094d9085856118b3565b610991878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061198792505050565b50505050505050565b333b15610a29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610a6c3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156792505050565b505050565b610a7e8585858585610a85565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610b58575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190612a47565b73ffffffffffffffffffffffffffffffffffffffff16145b610c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610209565b610c12611250565b15610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a20706175736564000000000000000000006044820152606401610209565b823414610d08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e742072657175697265640000000000006064820152608401610209565b3073ffffffffffffffffffffffffffffffffffffffff851603610dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c6600000000000000000000000000000000000000000000000000000000006064820152608401610209565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e6765720000000000000000000000000000000000000000000000006064820152608401610209565b610e9a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1592505050565b6000610eb7855a8660405180602001604052806000815250611a88565b905080610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c656400000000000000000000000000000000000000000000000000000000006064820152608401610209565b505050505050565b600054610100900460ff1615808015610f6e5750600054600160ff909116105b80610f885750303b158015610f88575060005460ff166001145b611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610209565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561107257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556110d083734200000000000000000000000000000000000010611aa2565b8015610a6c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61099187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8c92505050565b333b1561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610f4686863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eb792505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e49190612aaa565b905090565b61099187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eb792505050565b333b156113bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610f4686863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8c92505050565b61057a33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061056d92505050565b61099187878787878787610580565b333b156114e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610a6c33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061056d92505050565b61057a3385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156792505050565b8234146115f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c756500006064820152608401610209565b61160285858584611ec6565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611665908b908b9086908a90602401612acc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526116f892918890600401612b15565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505050505050565b600061175d827f1d1d8b6300000000000000000000000000000000000000000000000000000000611f39565b8061178d575061178d827fec4fc8e300000000000000000000000000000000000000000000000000000000611f39565b92915050565b60006117bf837f1d1d8b6300000000000000000000000000000000000000000000000000000000611f39565b15611868578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118339190612a47565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905061178d565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610a6c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f5c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38686866040516119ff93929190612b5a565b60405180910390a4610f46868686868686612068565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e6318484604051611a74929190612b98565b60405180910390a361057a848484846120f0565b600080600080845160208601878a8af19695505050505050565b600054610100900460ff16611b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610209565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b611b9587611731565b15611ce357611ba48787611793565b611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a401610209565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b158015611cc657600080fd5b505af1158015611cda573d6000803e3d6000fd5b50505050611d77565b611d0573ffffffffffffffffffffffffffffffffffffffff881686308661215d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611d43908490612bb1565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611d858787878787866121bb565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a0000000000000000000000000000000000000000000000000000000090611de9908b908d908c908c908c908b90602401612bc9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611e7c92918790600401612b15565b600060405180830381600087803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b5050505050505050505050565b61099187878787878787611b8c565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611f25929190612b98565b60405180910390a361057a84848484612249565b6000611f44836122a8565b8015611f555750611f55838361230c565b9392505050565b6000611fbe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123db9092919063ffffffff16565b805190915015610a6c5780806020019051810190611fdc9190612aaa565b610a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610209565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516120e093929190612b5a565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d848460405161214f929190612b98565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261057a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611905565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039686868660405161223393929190612b5a565b60405180910390a4610f468686868686866123f2565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5848460405161214f929190612b98565b60006122d4827f01ffc9a70000000000000000000000000000000000000000000000000000000061230c565b801561178d5750612305827fffffffff0000000000000000000000000000000000000000000000000000000061230c565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156123c4575060208210155b80156123d05750600081115b979650505050505050565b60606123ea848460008561246a565b949350505050565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516120e093929190612b5a565b6060824710156124fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610209565b73ffffffffffffffffffffffffffffffffffffffff85163b61257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610209565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125a39190612c24565b60006040518083038185875af1925050503d80600081146125e0576040519150601f19603f3d011682016040523d82523d6000602084013e6125e5565b606091505b50915091506123d0828286606083156125ff575081611f55565b82511561260f5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610209919061294e565b73ffffffffffffffffffffffffffffffffffffffff8116811461266557600080fd5b50565b60008083601f84011261267a57600080fd5b50813567ffffffffffffffff81111561269257600080fd5b6020830191508360208285010111156126aa57600080fd5b9250929050565b600080600080600080600060c0888a0312156126cc57600080fd5b87356126d781612643565b965060208801356126e781612643565b955060408801356126f781612643565b9450606088013561270781612643565b93506080880135925060a088013567ffffffffffffffff81111561272a57600080fd5b6127368a828b01612668565b989b979a50959850939692959293505050565b803563ffffffff8116811461275d57600080fd5b919050565b60008060006040848603121561277757600080fd5b61278084612749565b9250602084013567ffffffffffffffff81111561279c57600080fd5b6127a886828701612668565b9497909650939450505050565b6000806000806000608086880312156127cd57600080fd5b85356127d881612643565b945060208601356127e881612643565b935060408601359250606086013567ffffffffffffffff81111561280b57600080fd5b61281788828901612668565b969995985093965092949392505050565b6000806040838503121561283b57600080fd5b823561284681612643565b9150602083013561285681612643565b809150509250929050565b600080600080600080600060c0888a03121561287c57600080fd5b873561288781612643565b9650602088013561289781612643565b955060408801356128a781612643565b9450606088013593506128bc60808901612749565b925060a088013567ffffffffffffffff81111561272a57600080fd5b60005b838110156128f35781810151838201526020016128db565b8381111561057a5750506000910152565b6000815180845261291c8160208601602086016128d8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f556020830184612904565b60008060008060008060a0878903121561297a57600080fd5b863561298581612643565b9550602087013561299581612643565b9450604087013593506129aa60608801612749565b9250608087013567ffffffffffffffff8111156129c657600080fd5b6129d289828a01612668565b979a9699509497509295939492505050565b600080600080606085870312156129fa57600080fd5b8435612a0581612643565b9350612a1360208601612749565b9250604085013567ffffffffffffffff811115612a2f57600080fd5b612a3b87828801612668565b95989497509550505050565b600060208284031215612a5957600080fd5b8151611f5581612643565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612aa557612aa5612a64565b500390565b600060208284031215612abc57600080fd5b81518015158114611f5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612b0b6080830184612904565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612b446060830185612904565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612b8f6060830184612904565b95945050505050565b8281526040602082015260006123ea6040830184612904565b60008219821115612bc457612bc4612a64565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612c1860c0830184612904565b98975050505050505050565b60008251612c368184602087016128d8565b919091019291505056fea164736f6c634300080f000a","sourceMap":"1209:12690:132:-:0;;;3691:157;;;;;;;;;-1:-1:-1;3732:109:132::1;3786:1;::::0;3732:10:::1;:109::i;:::-;1209:12690:::0;;4055:322;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;4173:16:132::1;:36:::0;;-1:-1:-1;;;;;;4173:36:132::1;-1:-1:-1::0;;;;;4173:36:132;::::1;;::::0;;4219:151:::1;4267:10:::0;635:42:199::1;4219:21:132;:151::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;4055:322:132;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;5373:236:235:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;5544:9:235::1;:22:::0;;-1:-1:-1;;;;;5544:22:235;;::::1;-1:-1:-1::0;;;;;;5544:22:235;;::::1;;::::0;;;5576:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;5373:236::o;628:407:357:-;1209:12690:132;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101795760003560e01c80637f46ddb2116100cb578063927ede2d1161007f578063b1a1a88211610059578063b1a1a882146104fe578063c89701a214610511578063e11013dd1461053e57600080fd5b8063927ede2d146104a05780639a2ac6d5146104cb578063a9f9e675146104de57600080fd5b806387087623116100b0578063870876231461043a5780638f601f661461045a57806391c49bf8146103ef57600080fd5b80637f46ddb2146103ef578063838b25201461041a57600080fd5b80633cb747bf1161012d57806354fd4d501161010757806354fd4d501461035457806358a997f6146103aa5780635c975abb146103ca57600080fd5b80633cb747bf146102e7578063485cc95514610314578063540abf731461033457600080fd5b80631532ec341161015e5780631532ec341461026a5780631635f5fd1461027d57806335e80ab31461029057600080fd5b80630166a07a1461023757806309fc88431461025757600080fd5b3661023257333b15610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b610230333362030d406040518060200160405280600081525061056d565b005b600080fd5b34801561024357600080fd5b506102306102523660046126b1565b610580565b610230610265366004612762565b61099a565b6102306102783660046127b5565b610a71565b61023061028b3660046127b5565b610a85565b34801561029c57600080fd5b506032546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102f357600080fd5b506003546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561032057600080fd5b5061023061032f366004612828565b610f4e565b34801561034057600080fd5b5061023061034f366004612861565b611137565b34801561036057600080fd5b5061039d6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516102de919061294e565b3480156103b657600080fd5b506102306103c5366004612961565b61117c565b3480156103d657600080fd5b506103df611250565b60405190151581526020016102de565b3480156103fb57600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff166102bd565b34801561042657600080fd5b50610230610435366004612861565b6112e9565b34801561044657600080fd5b50610230610455366004612961565b61132e565b34801561046657600080fd5b50610492610475366004612828565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102de565b3480156104ac57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff166102bd565b6102306104d93660046129e4565b611402565b3480156104ea57600080fd5b506102306104f93660046126b1565b611444565b61023061050c366004612762565b611453565b34801561051d57600080fd5b506004546102bd9073ffffffffffffffffffffffffffffffffffffffff1681565b61023061054c3660046129e4565b611524565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61057a8484348585611567565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610653575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190612a47565b73ffffffffffffffffffffffffffffffffffffffff16145b610705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610209565b61070d611250565b15610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a20706175736564000000000000000000006044820152606401610209565b61077d87611731565b156108cb5761078c8787611793565b61083e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a401610209565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156108ae57600080fd5b505af11580156108c2573d6000803e3d6000fd5b5050505061094d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054610909908490612a93565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561094d9085856118b3565b610991878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061198792505050565b50505050505050565b333b15610a29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610a6c3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156792505050565b505050565b610a7e8585858585610a85565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610b58575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190612a47565b73ffffffffffffffffffffffffffffffffffffffff16145b610c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610209565b610c12611250565b15610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a20706175736564000000000000000000006044820152606401610209565b823414610d08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e742072657175697265640000000000006064820152608401610209565b3073ffffffffffffffffffffffffffffffffffffffff851603610dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c6600000000000000000000000000000000000000000000000000000000006064820152608401610209565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e6765720000000000000000000000000000000000000000000000006064820152608401610209565b610e9a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1592505050565b6000610eb7855a8660405180602001604052806000815250611a88565b905080610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c656400000000000000000000000000000000000000000000000000000000006064820152608401610209565b505050505050565b600054610100900460ff1615808015610f6e5750600054600160ff909116105b80610f885750303b158015610f88575060005460ff166001145b611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610209565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561107257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556110d083734200000000000000000000000000000000000010611aa2565b8015610a6c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61099187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8c92505050565b333b1561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610f4686863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eb792505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e49190612aaa565b905090565b61099187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eb792505050565b333b156113bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610f4686863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8c92505050565b61057a33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061056d92505050565b61099187878787878787610580565b333b156114e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f410000000000000000006064820152608401610209565b610a6c33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061056d92505050565b61057a3385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156792505050565b8234146115f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c756500006064820152608401610209565b61160285858584611ec6565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611665908b908b9086908a90602401612acc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526116f892918890600401612b15565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505050505050565b600061175d827f1d1d8b6300000000000000000000000000000000000000000000000000000000611f39565b8061178d575061178d827fec4fc8e300000000000000000000000000000000000000000000000000000000611f39565b92915050565b60006117bf837f1d1d8b6300000000000000000000000000000000000000000000000000000000611f39565b15611868578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118339190612a47565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905061178d565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610a6c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f5c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38686866040516119ff93929190612b5a565b60405180910390a4610f46868686868686612068565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e6318484604051611a74929190612b98565b60405180910390a361057a848484846120f0565b600080600080845160208601878a8af19695505050505050565b600054610100900460ff16611b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610209565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b611b9587611731565b15611ce357611ba48787611793565b611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a401610209565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b158015611cc657600080fd5b505af1158015611cda573d6000803e3d6000fd5b50505050611d77565b611d0573ffffffffffffffffffffffffffffffffffffffff881686308661215d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611d43908490612bb1565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611d858787878787866121bb565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a0000000000000000000000000000000000000000000000000000000090611de9908b908d908c908c908c908b90602401612bc9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611e7c92918790600401612b15565b600060405180830381600087803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b5050505050505050505050565b61099187878787878787611b8c565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611f25929190612b98565b60405180910390a361057a84848484612249565b6000611f44836122a8565b8015611f555750611f55838361230c565b9392505050565b6000611fbe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123db9092919063ffffffff16565b805190915015610a6c5780806020019051810190611fdc9190612aaa565b610a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610209565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516120e093929190612b5a565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d848460405161214f929190612b98565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261057a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611905565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039686868660405161223393929190612b5a565b60405180910390a4610f468686868686866123f2565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5848460405161214f929190612b98565b60006122d4827f01ffc9a70000000000000000000000000000000000000000000000000000000061230c565b801561178d5750612305827fffffffff0000000000000000000000000000000000000000000000000000000061230c565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156123c4575060208210155b80156123d05750600081115b979650505050505050565b60606123ea848460008561246a565b949350505050565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516120e093929190612b5a565b6060824710156124fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610209565b73ffffffffffffffffffffffffffffffffffffffff85163b61257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610209565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125a39190612c24565b60006040518083038185875af1925050503d80600081146125e0576040519150601f19603f3d011682016040523d82523d6000602084013e6125e5565b606091505b50915091506123d0828286606083156125ff575081611f55565b82511561260f5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610209919061294e565b73ffffffffffffffffffffffffffffffffffffffff8116811461266557600080fd5b50565b60008083601f84011261267a57600080fd5b50813567ffffffffffffffff81111561269257600080fd5b6020830191508360208285010111156126aa57600080fd5b9250929050565b600080600080600080600060c0888a0312156126cc57600080fd5b87356126d781612643565b965060208801356126e781612643565b955060408801356126f781612643565b9450606088013561270781612643565b93506080880135925060a088013567ffffffffffffffff81111561272a57600080fd5b6127368a828b01612668565b989b979a50959850939692959293505050565b803563ffffffff8116811461275d57600080fd5b919050565b60008060006040848603121561277757600080fd5b61278084612749565b9250602084013567ffffffffffffffff81111561279c57600080fd5b6127a886828701612668565b9497909650939450505050565b6000806000806000608086880312156127cd57600080fd5b85356127d881612643565b945060208601356127e881612643565b935060408601359250606086013567ffffffffffffffff81111561280b57600080fd5b61281788828901612668565b969995985093965092949392505050565b6000806040838503121561283b57600080fd5b823561284681612643565b9150602083013561285681612643565b809150509250929050565b600080600080600080600060c0888a03121561287c57600080fd5b873561288781612643565b9650602088013561289781612643565b955060408801356128a781612643565b9450606088013593506128bc60808901612749565b925060a088013567ffffffffffffffff81111561272a57600080fd5b60005b838110156128f35781810151838201526020016128db565b8381111561057a5750506000910152565b6000815180845261291c8160208601602086016128d8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f556020830184612904565b60008060008060008060a0878903121561297a57600080fd5b863561298581612643565b9550602087013561299581612643565b9450604087013593506129aa60608801612749565b9250608087013567ffffffffffffffff8111156129c657600080fd5b6129d289828a01612668565b979a9699509497509295939492505050565b600080600080606085870312156129fa57600080fd5b8435612a0581612643565b9350612a1360208601612749565b9250604085013567ffffffffffffffff811115612a2f57600080fd5b612a3b87828801612668565b95989497509550505050565b600060208284031215612a5957600080fd5b8151611f5581612643565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612aa557612aa5612a64565b500390565b600060208284031215612abc57600080fd5b81518015158114611f5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612b0b6080830184612904565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612b446060830185612904565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612b8f6060830184612904565b95945050505050565b8281526040602082015260006123ea6040830184612904565b60008219821115612bc457612bc4612a64565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612c1860c0830184612904565b98975050505050505050565b60008251612c368184602087016128d8565b919091019291505056fea164736f6c634300080f000a","sourceMap":"1209:12690:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4741:10:235;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;;;;;;;;;4658:81:132::1;4678:10;4690;1343:7:235;4729:9:132;;;;;;;;;;;::::0;4658:19:::1;:81::i;:::-;1209:12690:::0;;;;;12867:1084:235;;;;;;;;;;-1:-1:-1;12867:1084:235;;;;;:::i;:::-;;:::i;7253:186::-;;;;;;:::i;:::-;;:::i;8758:245:132:-;;;;;;:::i;:::-;;:::i;11233:902:235:-;;;;;;:::i;:::-;;:::i;3586:40:132:-;;;;;;;;;;-1:-1:-1;3586:40:132;;;;;;;;;;;3607:42:357;3595:55;;;3577:74;;3565:2;3550:18;3586:40:132;;;;;;;;1893:37:235;;;;;;;;;;-1:-1:-1;1893:37:235;;;;;;;;4055:322:132;;;;;;;;;;-1:-1:-1;4055:322:132;;;;;:::i;:::-;;:::i;10320:349:235:-;;;;;;;;;;-1:-1:-1;10320:349:235;;;;;:::i;:::-;;:::i;3481:40:132:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7066:339::-;;;;;;;;;;-1:-1:-1;7066:339:132;;;;;:::i;:::-;;:::i;4418:103::-;;;;;;;;;;;;;:::i;:::-;;;7155:14:357;;7148:22;7130:41;;7118:2;7103:18;4418:103:132;6990:187:357;6369:98:235;;;;;;;;;;-1:-1:-1;6449:11:235;;;;6369:98;;8106:339:132;;;;;;;;;;-1:-1:-1;8106:339:132;;;;;:::i;:::-;;:::i;9277:349:235:-;;;;;;;;;;-1:-1:-1;9277:349:235;;;;;:::i;:::-;;:::i;1739:63::-;;;;;;;;;;-1:-1:-1;1739:63:235;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7985:25:357;;;7973:2;7958:18;1739:63:235;7839:177:357;6024:99:235;;;;;;;;;;-1:-1:-1;6107:9:235;;;;6024:99;;6242:179:132;;;;;;:::i;:::-;;:::i;9453:305::-;;;;;;;;;;-1:-1:-1;9453:305:132;;;;;:::i;:::-;;:::i;5183:179::-;;;;;;:::i;:::-;;:::i;2028:33:235:-;;;;;;;;;;-1:-1:-1;2028:33:235;;;;;;;;8450:186;;;;;;:::i;:::-;;:::i;1175:320:59:-;1465:19;;;:23;;;1175:320::o;10356:196:132:-;10478:67;10497:5;10504:3;10509:9;10520:12;10534:10;10478:18;:67::i;:::-;10356:196;;;;:::o;12867:1084:235:-;5004:9;;;;4982:10;:32;:92;;;;-1:-1:-1;5062:11:235;;;5018:9;;:32;;;;;;;;5062:11;;;;;5018:9;;;;;:30;;:32;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;4982:92;4961:204;;;;;;;9331:2:357;4961:204:235;;;9313:21:357;9370:2;9350:18;;;9343:30;9409:34;9389:18;;;9382:62;9480:34;9460:18;;;9453:62;9552:3;9531:19;;;9524:32;9573:19;;4961:204:235;9129:469:357;4961:204:235;13126:8:::1;:6;:8::i;:::-;:17;13118:52;;;::::0;::::1;::::0;;9805:2:357;13118:52:235::1;::::0;::::1;9787:21:357::0;9844:2;9824:18;;;9817:30;9883:24;9863:18;;;9856:52;9925:18;;13118:52:235::1;9603:346:357::0;13118:52:235::1;13184:37;13209:11;13184:24;:37::i;:::-;13180:489;;;13262:46;13282:11;13295:12;13262:19;:46::i;:::-;13237:179;;;::::0;::::1;::::0;;10156:2:357;13237:179:235::1;::::0;::::1;10138:21:357::0;10195:2;10175:18;;;10168:30;10234:34;10214:18;;;10207:62;10305:34;10285:18;;;10278:62;10377:12;10356:19;;;10349:41;10407:19;;13237:179:235::1;9954:478:357::0;13237:179:235::1;13431:53;::::0;;;;:39:::1;10629:55:357::0;;;13431:53:235::1;::::0;::::1;10611:74:357::0;10701:18;;;10694:34;;;13431:39:235;::::1;::::0;::::1;::::0;10584:18:357;;13431:53:235::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13180:489;;;13553:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;:45:::1;::::0;13591:7;;13553:45:::1;:::i;:::-;13515:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;;:83;;;;13612:46:::1;::::0;13645:3;13650:7;13612:32:::1;:46::i;:::-;13859:85;13885:11;13898:12;13912:5;13919:3;13924:7;13933:10;;13859:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;13859:25:235::1;::::0;-1:-1:-1;;;13859:85:235:i:1;:::-;12867:1084:::0;;;;;;;:::o;7253:186::-;4741:10;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;7353:79:::1;7372:10;7384;7396:9;7407:12;7421:10;;7353:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7353:18:235::1;::::0;-1:-1:-1;;;7353:79:235:i:1;:::-;7253:186:::0;;;:::o;8758:245:132:-;8946:50;8964:5;8971:3;8976:7;8985:10;;8946:17;:50::i;:::-;8758:245;;;;;:::o;11233:902:235:-;5004:9;;;;4982:10;:32;:92;;;;-1:-1:-1;5062:11:235;;;5018:9;;:32;;;;;;;;5062:11;;;;;5018:9;;;;;:30;;:32;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;4982:92;4961:204;;;;;;;9331:2:357;4961:204:235;;;9313:21:357;9370:2;9350:18;;;9343:30;9409:34;9389:18;;;9382:62;9480:34;9460:18;;;9453:62;9552:3;9531:19;;;9524:32;9573:19;;4961:204:235;9129:469:357;4961:204:235;11447:8:::1;:6;:8::i;:::-;:17;11439:52;;;::::0;::::1;::::0;;9805:2:357;11439:52:235::1;::::0;::::1;9787:21:357::0;9844:2;9824:18;;;9817:30;9883:24;9863:18;;;9856:52;9925:18;;11439:52:235::1;9603:346:357::0;11439:52:235::1;11522:7;11509:9;:20;11501:91;;;::::0;::::1;::::0;;11260:2:357;11501:91:235::1;::::0;::::1;11242:21:357::0;11299:2;11279:18;;;11272:30;11338:34;11318:18;;;11311:62;11409:28;11389:18;;;11382:56;11455:19;;11501:91:235::1;11058:422:357::0;11501:91:235::1;11625:4;11610:20;::::0;::::1;::::0;11602:68:::1;;;::::0;::::1;::::0;;11687:2:357;11602:68:235::1;::::0;::::1;11669:21:357::0;11726:2;11706:18;;;11699:30;11765:34;11745:18;;;11738:62;11836:5;11816:18;;;11809:33;11859:19;;11602:68:235::1;11485:399:357::0;11602:68:235::1;11703:9;::::0;::::1;::::0;;::::1;11688:25:::0;;::::1;::::0;11680:78:::1;;;::::0;::::1;::::0;;12091:2:357;11680:78:235::1;::::0;::::1;12073:21:357::0;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;12240:10;12220:18;;;12213:38;12268:19;;11680:78:235::1;11889:404:357::0;11680:78:235::1;11936:56;11960:5;11967:3;11972:7;11981:10;;11936:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11936:23:235::1;::::0;-1:-1:-1;;;11936:56:235:i:1;:::-;12003:12;12018:45;12032:3;12037:9;12048:7;12018:45;;;;;;;;;;;::::0;:13:::1;:45::i;:::-;12003:60;;12081:7;12073:55;;;::::0;::::1;::::0;;12500:2:357;12073:55:235::1;::::0;::::1;12482:21:357::0;12539:2;12519:18;;;12512:30;12578:34;12558:18;;;12551:62;12649:5;12629:18;;;12622:33;12672:19;;12073:55:235::1;12298:399:357::0;12073:55:235::1;11429:706;11233:902:::0;;;;;:::o;4055:322:132:-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;12904:2:357;3146:190:43;;;12886:21:357;12943:2;12923:18;;;12916:30;12982:34;12962:18;;;12955:62;13053:16;13033:18;;;13026:44;13087:19;;3146:190:43;12702:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;4173:16:132::1;:36:::0;;;::::1;;::::0;::::1;;::::0;;4219:151:::1;4267:10:::0;635:42:199::1;4219:21:132;:151::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;13269:36:357;;3531:14:43;;13257:2:357;13242:18;3531:14:43;;;;;;;3090:472;4055:322:132;;:::o;10320:349:235:-;10563:99;10584:11;10597:12;10611:10;10623:3;10628:7;10637:12;10651:10;;10563:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10563:20:235;;-1:-1:-1;;;10563:99:235:i;7066:339:132:-;4741:10:235;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;7298:100:132::1;7320:8;7330;7340:10;7352;7364:7;7373:12;7387:10;;7298:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7298:21:132::1;::::0;-1:-1:-1;;;7298:100:132:i:1;4418:103::-:0;4489:16;;:25;;;;;;;;4466:4;;4489:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4482:32;;4418:103;:::o;8106:339::-;8345:93;8367:8;8377;8387:10;8399:3;8404:7;8413:12;8427:10;;8345:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8345:21:132;;-1:-1:-1;;;8345:93:132:i;9277:349:235:-;4741:10;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;9513:106:::1;9534:11;9547:12;9561:10;9573;9585:7;9594:12;9608:10;;9513:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;9513:20:235::1;::::0;-1:-1:-1;;;9513:106:235:i:1;6242:179:132:-:0;6352:62;6372:10;6384:3;6389:12;6403:10;;6352:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6352:19:132;;-1:-1:-1;;;6352:62:132:i;9453:305::-;9679:72;9699:8;9709;9719:5;9726:3;9731:7;9740:10;;9679:19;:72::i;5183:179::-;4741:10:235;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;5286:69:132::1;5306:10;5318;5330:12;5344:10;;5286:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5286:19:132::1;::::0;-1:-1:-1;;;5286:69:132:i:1;8450:186:235:-:0;8557:72;8576:10;8588:3;8593:9;8604:12;8618:10;;8557:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8557:18:235;;-1:-1:-1;;;8557:72:235:i;14539:789::-;14756:7;14743:9;:20;14735:95;;;;;;;13800:2:357;14735:95:235;;;13782:21:357;13839:2;13819:18;;;13812:30;13878:34;13858:18;;;13851:62;13949:32;13929:18;;;13922:60;13999:19;;14735:95:235;13598:426:357;14735:95:235;15008:56;15032:5;15039:3;15044:7;15053:10;15008:23;:56::i;:::-;15075:9;;15146:11;;15182:88;;15075:9;;;;;:21;;15105:7;;15146:11;;;15205:31;;15182:88;;15238:5;;15245:3;;15105:7;;15259:10;;15182:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;15075:246;;;;;;;;;;;;;15298:12;;15075:246;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14539:789;;;;;:::o;17966:279::-;18039:4;18062:79;18094:6;18102:38;18062:31;:79::i;:::-;:176;;;;18157:81;18189:6;18197:40;18157:31;:81::i;:::-;18055:183;17966:279;-1:-1:-1;;17966:279:235:o;18692:410::-;18789:4;18809:87;18841:14;18857:38;18809:31;:87::i;:::-;18805:291;;;18955:14;18934:44;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18919:61;;:11;:61;;;18912:68;;;;18805:291;19056:14;19033:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:205:52;902:58;;10641:42:357;10629:55;;902:58:52;;;10611:74:357;10701:18;;;10694:34;;;875:86:52;;895:5;;925:23;;10584:18:357;;902:58:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;13450:447:132:-;13757:5;13705:84;;13743:12;13705:84;;13730:11;13705:84;;;13764:3;13769:7;13778:10;13705:84;;;;;;;;:::i;:::-;;;;;;;;13799:91;13831:11;13844:12;13858:5;13865:3;13870:7;13879:10;13799:31;:91::i;12208:328::-;12432:3;12402:55;;12425:5;12402:55;;;12437:7;12446:10;12402:55;;;;;;;:::i;:::-;;;;;;;;12467:62;12497:5;12504:3;12509:7;12518:10;12467:29;:62::i;1202:536:200:-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;5373:236:235:-;4888:13:43;;;;;;;4880:69;;;;;;;15885:2:357;4880:69:43;;;15867:21:357;15924:2;15904:18;;;15897:30;15963:34;15943:18;;;15936:62;16034:13;16014:18;;;16007:41;16065:19;;4880:69:43;15683:407:357;4880:69:43;5544:9:235::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;5576:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;5373:236::o;16022:1680::-;16283:37;16308:11;16283:24;:37::i;:::-;16279:512;;;16361:46;16381:11;16394:12;16361:19;:46::i;:::-;16336:179;;;;;;;10156:2:357;16336:179:235;;;10138:21:357;10195:2;10175:18;;;10168:30;10234:34;10214:18;;;10207:62;10305:34;10285:18;;;10278:62;10377:12;10356:19;;;10349:41;10407:19;;16336:179:235;9954:478:357;16336:179:235;16530:55;;;;;:39;10629:55:357;;;16530::235;;;10611:74:357;10701:18;;;10694:34;;;16530:39:235;;;;;10584:18:357;;16530:55:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16279:512;;;16616:67;:36;;;16653:5;16668:4;16675:7;16616:36;:67::i;:::-;16735:21;;;;;;;;:8;:21;;;;;;;;:35;;;;;;;;;;:45;;16773:7;;16735:45;:::i;:::-;16697:21;;;;;;;;:8;:21;;;;;;;;:35;;;;;;;;;:83;16279:512;16981:85;17007:11;17020:12;17034:5;17041:3;17046:7;17055:10;16981:25;:85::i;:::-;17077:9;;17130:11;;17166:478;;17077:9;;;;;:21;;17130:11;;17206:33;;17166:478;;17492:12;;17522:11;;17551:5;;17574:3;;17595:7;;17620:10;;17166:478;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:618;;;;;;;;;;;;;17672:12;;17077:618;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16022:1680;;;;;;;:::o;11078:345:132:-;11329:87;11350:8;11360;11370:5;11377:3;11382:7;11391:12;11405:10;11329:20;:87::i;11651:325::-;11872:3;11845:52;;11865:5;11845:52;;;11877:7;11886:10;11845:52;;;;;;;:::i;:::-;;;;;;;;11907:62;11937:5;11944:3;11949:7;11958:10;11907:29;:62::i;1333:274:67:-;1420:4;1527:23;1542:7;1527:14;:23::i;:::-;:73;;;;;1554:46;1579:7;1588:11;1554:24;:46::i;:::-;1520:80;1333:274;-1:-1:-1;;;1333:274:67:o;3747:706:52:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:52;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;17109:2:357;4351:85:52;;;17091:21:357;17148:2;17128:18;;;17121:30;17187:34;17167:18;;;17160:62;17258:12;17238:18;;;17231:40;17288:19;;4351:85:52;16907:406:357;21757:341:235;22059:5;22011:80;;22045:12;22011:80;;22032:11;22011:80;;;22066:3;22071:7;22080:10;22011:80;;;;;;;;:::i;:::-;;;;;;;;21757:341;;;;;;:::o;20099:251::-;20318:3;20292:51;;20311:5;20292:51;;;20323:7;20332:10;20292:51;;;;;;;:::i;:::-;;;;;;;;20099:251;;;;:::o;974:241:52:-;1139:68;;17530:42:357;17599:15;;;1139:68:52;;;17581:34:357;17651:15;;17631:18;;;17624:43;17683:18;;;17676:34;;;1112:96:52;;1132:5;;1162:27;;17493:18:357;;1139:68:52;17318:398:357;12771:444:132;13075:5;13026:81;;13061:12;13026:81;;13048:11;13026:81;;;13082:3;13087:7;13096:10;13026:81;;;;;;;;:::i;:::-;;;;;;;;13117:91;13149:11;13162:12;13176:5;13183:3;13188:7;13197:10;13117:31;:91::i;19478:251:235:-;19697:3;19671:51;;19690:5;19671:51;;;19702:7;19711:10;19671:51;;;;;;;:::i;704:411:67:-;768:4;975:60;1000:7;1009:25;975:24;:60::i;:::-;:133;;;;-1:-1:-1;1052:56:67;1077:7;1086:21;1052:24;:56::i;:::-;1051:57;956:152;704:411;-1:-1:-1;;704:411:67:o;4223:638::-;4385:71;;;17895:66:357;17883:79;;4385:71:67;;;;17865:98:357;;;;4385:71:67;;;;;;;;;;17838:18:357;;;;4385:71:67;;;;;;;;;;;4408:34;4385:71;;;4664:20;;4316:4;;4385:71;4316:4;;;;;;4385:71;4316:4;;4664:20;4629:7;4622:5;4611:86;4600:97;;4724:16;4710:30;;4774:4;4768:11;4753:26;;4806:7;:29;;;;;4831:4;4817:10;:18;;4806:29;:48;;;;;4853:1;4839:11;:15;4806:48;4799:55;4223:638;-1:-1:-1;;;;;;;4223:638:67:o;3861:223:59:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;3861:223;-1:-1:-1;;;;3861:223:59:o;20883:341:235:-;21185:5;21137:80;;21171:12;21137:80;;21158:11;21137:80;;;21192:3;21197:7;21206:10;21137:80;;;;;;;;:::i;4948:499:59:-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;18176:2:357;5137:81:59;;;18158:21:357;18215:2;18195:18;;;18188:30;18254:34;18234:18;;;18227:62;18325:8;18305:18;;;18298:36;18351:19;;5137:81:59;17974:402:357;5137:81:59;1465:19;;;;5228:60;;;;;;;18583:2:357;5228:60:59;;;18565:21:357;18622:2;18602:18;;;18595:30;18661:31;18641:18;;;18634:59;18710:18;;5228:60:59;18381:353:357;5228:60:59;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;7707;7735:7;7731:566;;;-1:-1:-1;7765:10:59;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;438:154:357:-;524:42;517:5;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;438:154;:::o;597:347::-;648:8;658:6;712:3;705:4;697:6;693:17;689:27;679:55;;730:1;727;720:12;679:55;-1:-1:-1;753:20:357;;796:18;785:30;;782:50;;;828:1;825;818:12;782:50;865:4;857:6;853:17;841:29;;917:3;910:4;901:6;893;889:19;885:30;882:39;879:59;;;934:1;931;924:12;879:59;597:347;;;;;:::o;949:1038::-;1064:6;1072;1080;1088;1096;1104;1112;1165:3;1153:9;1144:7;1140:23;1136:33;1133:53;;;1182:1;1179;1172:12;1133:53;1221:9;1208:23;1240:31;1265:5;1240:31;:::i;:::-;1290:5;-1:-1:-1;1347:2:357;1332:18;;1319:32;1360:33;1319:32;1360:33;:::i;:::-;1412:7;-1:-1:-1;1471:2:357;1456:18;;1443:32;1484:33;1443:32;1484:33;:::i;:::-;1536:7;-1:-1:-1;1595:2:357;1580:18;;1567:32;1608:33;1567:32;1608:33;:::i;:::-;1660:7;-1:-1:-1;1714:3:357;1699:19;;1686:33;;-1:-1:-1;1770:3:357;1755:19;;1742:33;1798:18;1787:30;;1784:50;;;1830:1;1827;1820:12;1784:50;1869:58;1919:7;1910:6;1899:9;1895:22;1869:58;:::i;:::-;949:1038;;;;-1:-1:-1;949:1038:357;;-1:-1:-1;949:1038:357;;;;1843:84;;-1:-1:-1;;;949:1038:357:o;1992:163::-;2059:20;;2119:10;2108:22;;2098:33;;2088:61;;2145:1;2142;2135:12;2088:61;1992:163;;;:::o;2160:481::-;2238:6;2246;2254;2307:2;2295:9;2286:7;2282:23;2278:32;2275:52;;;2323:1;2320;2313:12;2275:52;2346:28;2364:9;2346:28;:::i;:::-;2336:38;;2425:2;2414:9;2410:18;2397:32;2452:18;2444:6;2441:30;2438:50;;;2484:1;2481;2474:12;2438:50;2523:58;2573:7;2564:6;2553:9;2549:22;2523:58;:::i;:::-;2160:481;;2600:8;;-1:-1:-1;2497:84:357;;-1:-1:-1;;;;2160:481:357:o;2646:754::-;2743:6;2751;2759;2767;2775;2828:3;2816:9;2807:7;2803:23;2799:33;2796:53;;;2845:1;2842;2835:12;2796:53;2884:9;2871:23;2903:31;2928:5;2903:31;:::i;:::-;2953:5;-1:-1:-1;3010:2:357;2995:18;;2982:32;3023:33;2982:32;3023:33;:::i;:::-;3075:7;-1:-1:-1;3129:2:357;3114:18;;3101:32;;-1:-1:-1;3184:2:357;3169:18;;3156:32;3211:18;3200:30;;3197:50;;;3243:1;3240;3233:12;3197:50;3282:58;3332:7;3323:6;3312:9;3308:22;3282:58;:::i;:::-;2646:754;;;;-1:-1:-1;2646:754:357;;-1:-1:-1;3359:8:357;;3256:84;2646:754;-1:-1:-1;;;2646:754:357:o;3924:445::-;4049:6;4057;4110:2;4098:9;4089:7;4085:23;4081:32;4078:52;;;4126:1;4123;4116:12;4078:52;4165:9;4152:23;4184:31;4209:5;4184:31;:::i;:::-;4234:5;-1:-1:-1;4291:2:357;4276:18;;4263:32;4304:33;4263:32;4304:33;:::i;:::-;4356:7;4346:17;;;3924:445;;;;;:::o;4374:969::-;4488:6;4496;4504;4512;4520;4528;4536;4589:3;4577:9;4568:7;4564:23;4560:33;4557:53;;;4606:1;4603;4596:12;4557:53;4645:9;4632:23;4664:31;4689:5;4664:31;:::i;:::-;4714:5;-1:-1:-1;4771:2:357;4756:18;;4743:32;4784:33;4743:32;4784:33;:::i;:::-;4836:7;-1:-1:-1;4895:2:357;4880:18;;4867:32;4908:33;4867:32;4908:33;:::i;:::-;4960:7;-1:-1:-1;5014:2:357;4999:18;;4986:32;;-1:-1:-1;5037:38:357;5070:3;5055:19;;5037:38;:::i;:::-;5027:48;;5126:3;5115:9;5111:19;5098:33;5154:18;5146:6;5143:30;5140:50;;;5186:1;5183;5176:12;5348:258;5420:1;5430:113;5444:6;5441:1;5438:13;5430:113;;;5520:11;;;5514:18;5501:11;;;5494:39;5466:2;5459:10;5430:113;;;5561:6;5558:1;5555:13;5552:48;;;-1:-1:-1;;5596:1:357;5578:16;;5571:27;5348:258::o;5611:317::-;5653:3;5691:5;5685:12;5718:6;5713:3;5706:19;5734:63;5790:6;5783:4;5778:3;5774:14;5767:4;5760:5;5756:16;5734:63;:::i;:::-;5842:2;5830:15;5847:66;5826:88;5817:98;;;;5917:4;5813:109;;5611:317;-1:-1:-1;;5611:317:357:o;5933:220::-;6082:2;6071:9;6064:21;6045:4;6102:45;6143:2;6132:9;6128:18;6120:6;6102:45;:::i;6158:827::-;6263:6;6271;6279;6287;6295;6303;6356:3;6344:9;6335:7;6331:23;6327:33;6324:53;;;6373:1;6370;6363:12;6324:53;6412:9;6399:23;6431:31;6456:5;6431:31;:::i;:::-;6481:5;-1:-1:-1;6538:2:357;6523:18;;6510:32;6551:33;6510:32;6551:33;:::i;:::-;6603:7;-1:-1:-1;6657:2:357;6642:18;;6629:32;;-1:-1:-1;6680:37:357;6713:2;6698:18;;6680:37;:::i;:::-;6670:47;;6768:3;6757:9;6753:19;6740:33;6796:18;6788:6;6785:30;6782:50;;;6828:1;6825;6818:12;6782:50;6867:58;6917:7;6908:6;6897:9;6893:22;6867:58;:::i;:::-;6158:827;;;;-1:-1:-1;6158:827:357;;-1:-1:-1;6158:827:357;;6944:8;;6158:827;-1:-1:-1;;;6158:827:357:o;8252:616::-;8339:6;8347;8355;8363;8416:2;8404:9;8395:7;8391:23;8387:32;8384:52;;;8432:1;8429;8422:12;8384:52;8471:9;8458:23;8490:31;8515:5;8490:31;:::i;:::-;8540:5;-1:-1:-1;8564:37:357;8597:2;8582:18;;8564:37;:::i;:::-;8554:47;;8652:2;8641:9;8637:18;8624:32;8679:18;8671:6;8668:30;8665:50;;;8711:1;8708;8701:12;8665:50;8750:58;8800:7;8791:6;8780:9;8776:22;8750:58;:::i;:::-;8252:616;;;;-1:-1:-1;8827:8:357;-1:-1:-1;;;;8252:616:357:o;8873:251::-;8943:6;8996:2;8984:9;8975:7;8971:23;8967:32;8964:52;;;9012:1;9009;9002:12;8964:52;9044:9;9038:16;9063:31;9088:5;9063:31;:::i;10739:184::-;10791:77;10788:1;10781:88;10888:4;10885:1;10878:15;10912:4;10909:1;10902:15;10928:125;10968:4;10996:1;10993;10990:8;10987:34;;;11001:18;;:::i;:::-;-1:-1:-1;11038:9:357;;10928:125::o;13316:277::-;13383:6;13436:2;13424:9;13415:7;13411:23;13407:32;13404:52;;;13452:1;13449;13442:12;13404:52;13484:9;13478:16;13537:5;13530:13;13523:21;13516:5;13513:32;13503:60;;13559:1;13556;13549:12;14029:512;14223:4;14252:42;14333:2;14325:6;14321:15;14310:9;14303:34;14385:2;14377:6;14373:15;14368:2;14357:9;14353:18;14346:43;;14425:6;14420:2;14409:9;14405:18;14398:34;14468:3;14463:2;14452:9;14448:18;14441:31;14489:46;14530:3;14519:9;14515:19;14507:6;14489:46;:::i;:::-;14481:54;14029:512;-1:-1:-1;;;;;;14029:512:357:o;14546:424::-;14759:42;14751:6;14747:55;14736:9;14729:74;14839:2;14834;14823:9;14819:18;14812:30;14710:4;14859:45;14900:2;14889:9;14885:18;14877:6;14859:45;:::i;:::-;14851:53;;14952:10;14944:6;14940:23;14935:2;14924:9;14920:18;14913:51;14546:424;;;;;;:::o;14975:409::-;15190:42;15182:6;15178:55;15167:9;15160:74;15270:6;15265:2;15254:9;15250:18;15243:34;15313:2;15308;15297:9;15293:18;15286:30;15141:4;15333:45;15374:2;15363:9;15359:18;15351:6;15333:45;:::i;:::-;15325:53;14975:409;-1:-1:-1;;;;;14975:409:357:o;15389:289::-;15564:6;15553:9;15546:25;15607:2;15602;15591:9;15587:18;15580:30;15527:4;15627:45;15668:2;15657:9;15653:18;15645:6;15627:45;:::i;16095:128::-;16135:3;16166:1;16162:6;16159:1;16156:13;16153:39;;;16172:18;;:::i;:::-;-1:-1:-1;16208:9:357;;16095:128::o;16228:674::-;16478:4;16507:42;16588:2;16580:6;16576:15;16565:9;16558:34;16640:2;16632:6;16628:15;16623:2;16612:9;16608:18;16601:43;16692:2;16684:6;16680:15;16675:2;16664:9;16660:18;16653:43;16744:2;16736:6;16732:15;16727:2;16716:9;16712:18;16705:43;;16785:6;16779:3;16768:9;16764:19;16757:35;16829:3;16823;16812:9;16808:19;16801:32;16850:46;16891:3;16880:9;16876:19;16868:6;16850:46;:::i;:::-;16842:54;16228:674;-1:-1:-1;;;;;;;;16228:674:357:o;18739:274::-;18868:3;18906:6;18900:13;18922:53;18968:6;18963:3;18956:4;18948:6;18944:17;18922:53;:::i;:::-;18991:16;;;;;18739:274;-1:-1:-1;;18739:274:357:o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC20(address,address,uint256,uint32,bytes)":"87087623","bridgeERC20To(address,address,address,uint256,uint32,bytes)":"540abf73","bridgeETH(uint32,bytes)":"09fc8843","bridgeETHTo(address,uint32,bytes)":"e11013dd","depositERC20(address,address,uint256,uint32,bytes)":"58a997f6","depositERC20To(address,address,address,uint256,uint32,bytes)":"838b2520","depositETH(uint32,bytes)":"b1a1a882","depositETHTo(address,uint32,bytes)":"9a2ac6d5","deposits(address,address)":"8f601f66","finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)":"a9f9e675","finalizeETHWithdrawal(address,address,uint256,bytes)":"1532ec34","initialize(address,address)":"485cc955","l2TokenBridge()":"91c49bf8","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","superchainConfig()":"35e80ab3","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20DepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHBridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHBridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHDepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHWithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeETHTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"depositERC20To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"depositETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"depositETHTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeERC20Withdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeETHWithdrawal\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2TokenBridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@title L1StandardBridge\",\"events\":{\"ERC20DepositInitiated(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever an ERC20 deposit is initiated.\",\"params\":{\"amount\":\"Amount of the ERC20 deposited.\",\"extraData\":\"Extra data attached to the deposit.\",\"from\":\"Address of the depositor.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L2.\"}},\"ERC20WithdrawalFinalized(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever an ERC20 withdrawal is finalized.\",\"params\":{\"amount\":\"Amount of the ERC20 withdrawn.\",\"extraData\":\"Extra data attached to the withdrawal.\",\"from\":\"Address of the withdrawer.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L1.\"}},\"ETHDepositInitiated(address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever a deposit of ETH from L1 into L2 is initiated.\",\"params\":{\"amount\":\"Amount of ETH deposited.\",\"extraData\":\"Extra data attached to the deposit.\",\"from\":\"Address of the depositor.\",\"to\":\"Address of the recipient on L2.\"}},\"ETHWithdrawalFinalized(address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever a withdrawal of ETH from L2 to L1 is finalized.\",\"params\":{\"amount\":\"Amount of ETH withdrawn.\",\"extraData\":\"Extra data attached to the withdrawal.\",\"from\":\"Address of the withdrawer.\",\"to\":\"Address of the recipient on L1.\"}}},\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the messenger on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC20(address,address,uint256,uint32,bytes)\":{\"params\":{\"_amount\":\"Amount of local tokens to deposit.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\"}},\"bridgeERC20To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_amount\":\"Amount of local tokens to deposit.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\",\"_to\":\"Address of the receiver.\"}},\"bridgeETH(uint32,bytes)\":{\"params\":{\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\"}},\"bridgeETHTo(address,uint32,bytes)\":{\"params\":{\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_to\":\"Address of the receiver.\"}},\"depositERC20(address,address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ERC20 tokens into the sender's account on L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to deposit.\",\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_l1Token\":\"Address of the L1 token being deposited.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\"}},\"depositERC20To(address,address,address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ERC20 tokens into a target account on L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to deposit.\",\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_l1Token\":\"Address of the L1 token being deposited.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\",\"_to\":\"Address of the recipient on L2.\"}},\"depositETH(uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ETH into the sender's account on L2.\",\"params\":{\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\"}},\"depositETHTo(address,uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ETH into a target account on L2. Note that if ETH is sent to a contract on L2 and the call fails, then that ETH will be locked in the L2StandardBridge. ETH may be recoverable if the call can be successfully replayed by increasing the amount of gas supplied to the call. If the call will fail for any amount of gas, then the ETH will be locked permanently.\",\"params\":{\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\",\"_to\":\"Address of the recipient on L2.\"}},\"finalizeBridgeERC20(address,address,address,address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of the ERC20 being bridged.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_from\":\"Address of the sender.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\",\"_to\":\"Address of the receiver.\"}},\"finalizeBridgeETH(address,address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of ETH being bridged.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_from\":\"Address of the sender.\",\"_to\":\"Address of the receiver.\"}},\"finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Finalizes a withdrawal of ERC20 tokens from L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to withdraw.\",\"_extraData\":\"Optional data forwarded from L2.\",\"_from\":\"Address of the withdrawer on L2.\",\"_l1Token\":\"Address of the token on L1.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_to\":\"Address of the recipient on L1.\"}},\"finalizeETHWithdrawal(address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Finalizes a withdrawal of ETH from L2.\",\"params\":{\"_amount\":\"Amount of ETH to withdraw.\",\"_extraData\":\"Optional data forwarded from L2.\",\"_from\":\"Address of the withdrawer on L2.\",\"_to\":\"Address of the recipient on L1.\"}},\"initialize(address,address)\":{\"params\":{\"_messenger\":\"Contract for the CrossDomainMessenger on this network.\",\"_superchainConfig\":\"Contract for the SuperchainConfig on this network.\"}},\"l2TokenBridge()\":{\"custom:legacy\":\"@notice Retrieves the access of the corresponding L2 bridge contract.\",\"returns\":{\"_0\":\"Address of the corresponding L2 bridge contract.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"2.1.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"ERC20BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC20 bridge is finalized on this chain.\"},\"ERC20BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC20 bridge is initiated to the other chain.\"},\"ETHBridgeFinalized(address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ETH bridge is finalized on this chain.\"},\"ETHBridgeInitiated(address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ETH bridge is initiated to the other chain.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC20(address,address,uint256,uint32,bytes)\":{\"notice\":\"Sends ERC20 tokens to the sender's address on the other chain.\"},\"bridgeERC20To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Sends ERC20 tokens to a receiver's address on the other chain.\"},\"bridgeETH(uint32,bytes)\":{\"notice\":\"Sends ETH to the sender's address on the other chain.\"},\"bridgeETHTo(address,uint32,bytes)\":{\"notice\":\"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case.\"},\"constructor\":{\"notice\":\"Constructs the L1StandardBridge contract.\"},\"deposits(address,address)\":{\"notice\":\"Mapping that stores deposits for a given pair of local and remote tokens.\"},\"finalizeBridgeERC20(address,address,address,address,uint256,bytes)\":{\"notice\":\"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.\"},\"finalizeBridgeETH(address,address,uint256,bytes)\":{\"notice\":\"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.\"},\"initialize(address,address)\":{\"notice\":\"Initializer.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Corresponding bridge on the other domain.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"},\"superchainConfig()\":{\"notice\":\"Address of the SuperchainConfig contract.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The L1StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and L2. In the case that an ERC20 token is native to L1, it will be escrowed within this contract. If the ERC20 token is native to L2, it will be burnt. Before Bedrock, ETH was stored within this contract. After Bedrock, ETH is instead stored inside the OptimismPortal contract. NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples of some token types that may not be properly supported by this contract include, but are not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L1StandardBridge.sol\":\"L1StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1StandardBridge.sol\":{\"keccak256\":\"0x2fdc6f6f464a24344847c81d394f502d000cd722f7ff21fa21104b5f7e392633\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393fd96446ab8fce3bb7d1134e6ff847bf9940e0eaa199accf01118c3917367f\",\"dweb:/ipfs/QmX36camDYHu7pVzdjnfprinxPpZnjJehZXUKTyUdezKRK\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\",\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20DepositInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20WithdrawalFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHBridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHBridgeInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHDepositInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHWithdrawalFinalized","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20To"},{"inputs":[{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"bridgeETH"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"bridgeETHTo"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20To"},{"inputs":[{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositETH"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositETHTo"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"finalizeBridgeETH"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeERC20Withdrawal"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"finalizeETHWithdrawal"},{"inputs":[{"internalType":"contract CrossDomainMessenger","name":"_messenger","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l2TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Contract of the messenger on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC20(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain."}},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"bridgeETH(uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with."}},"bridgeETHTo(address,uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_to":"Address of the receiver."}},"depositERC20(address,address,uint256,uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ERC20 tokens into the sender's account on L2.","params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2."}},"depositERC20To(address,address,address,uint256,uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ERC20 tokens into a target account on L2.","params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2.","_to":"Address of the recipient on L2."}},"depositETH(uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ETH into the sender's account on L2.","params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_minGasLimit":"Minimum gas limit for the deposit message on L2."}},"depositETHTo(address,uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ETH into a target account on L2. Note that if ETH is sent to a contract on L2 and the call fails, then that ETH will be locked in the L2StandardBridge. ETH may be recoverable if the call can be successfully replayed by increasing the amount of gas supplied to the call. If the call will fail for any amount of gas, then the ETH will be locked permanently.","params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_minGasLimit":"Minimum gas limit for the deposit message on L2.","_to":"Address of the recipient on L2."}},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the ERC20 being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_localToken":"Address of the ERC20 on this chain.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"finalizeBridgeETH(address,address,uint256,bytes)":{"params":{"_amount":"Amount of ETH being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_to":"Address of the receiver."}},"finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)":{"custom:legacy":"@notice Finalizes a withdrawal of ERC20 tokens from L2.","params":{"_amount":"Amount of the ERC20 to withdraw.","_extraData":"Optional data forwarded from L2.","_from":"Address of the withdrawer on L2.","_l1Token":"Address of the token on L1.","_l2Token":"Address of the corresponding token on L2.","_to":"Address of the recipient on L1."}},"finalizeETHWithdrawal(address,address,uint256,bytes)":{"custom:legacy":"@notice Finalizes a withdrawal of ETH from L2.","params":{"_amount":"Amount of ETH to withdraw.","_extraData":"Optional data forwarded from L2.","_from":"Address of the withdrawer on L2.","_to":"Address of the recipient on L1."}},"initialize(address,address)":{"params":{"_messenger":"Contract for the CrossDomainMessenger on this network.","_superchainConfig":"Contract for the SuperchainConfig on this network."}},"l2TokenBridge()":{"custom:legacy":"@notice Retrieves the access of the corresponding L2 bridge contract.","returns":{"_0":"Address of the corresponding L2 bridge contract."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC20(address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to the sender's address on the other chain."},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to a receiver's address on the other chain."},"bridgeETH(uint32,bytes)":{"notice":"Sends ETH to the sender's address on the other chain."},"bridgeETHTo(address,uint32,bytes)":{"notice":"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case."},"constructor":{"notice":"Constructs the L1StandardBridge contract."},"deposits(address,address)":{"notice":"Mapping that stores deposits for a given pair of local and remote tokens."},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"notice":"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"finalizeBridgeETH(address,address,uint256,bytes)":{"notice":"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"initialize(address,address)":{"notice":"Initializer."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Corresponding bridge on the other domain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1StandardBridge.sol":"L1StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1StandardBridge.sol":{"keccak256":"0x2fdc6f6f464a24344847c81d394f502d000cd722f7ff21fa21104b5f7e392633","urls":["bzz-raw://393fd96446ab8fce3bb7d1134e6ff847bf9940e0eaa199accf01118c3917367f","dweb:/ipfs/QmX36camDYHu7pVzdjnfprinxPpZnjJehZXUKTyUdezKRK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":110944,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":110947,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"spacer_1_0_20","offset":0,"slot":"1","type":"t_address"},{"astId":110954,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"deposits","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":110958,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"messenger","offset":0,"slot":"3","type":"t_contract(CrossDomainMessenger)108888"},{"astId":110962,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"otherBridge","offset":0,"slot":"4","type":"t_contract(StandardBridge)111675"},{"astId":110967,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"__gap","offset":0,"slot":"5","type":"t_array(t_uint256)45_storage"},{"astId":85497,"contract":"src/L1/L1StandardBridge.sol:L1StandardBridge","label":"superchainConfig","offset":0,"slot":"50","type":"t_contract(SuperchainConfig)88793"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)45_storage":{"encoding":"inplace","label":"uint256[45]","numberOfBytes":"1440","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC20(address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to the sender's address on the other chain."},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to a receiver's address on the other chain."},"bridgeETH(uint32,bytes)":{"notice":"Sends ETH to the sender's address on the other chain."},"bridgeETHTo(address,uint32,bytes)":{"notice":"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case."},"constructor":{"notice":"Constructs the L1StandardBridge contract."},"deposits(address,address)":{"notice":"Mapping that stores deposits for a given pair of local and remote tokens."},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"notice":"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"finalizeBridgeETH(address,address,uint256,bytes)":{"notice":"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"initialize(address,address)":{"notice":"Initializer."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Corresponding bridge on the other domain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"events":{"ERC20BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC20 bridge is finalized on this chain."},"ERC20BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC20 bridge is initiated to the other chain."},"ETHBridgeFinalized(address,address,uint256,bytes)":{"notice":"Emitted when an ETH bridge is finalized on this chain."},"ETHBridgeInitiated(address,address,uint256,bytes)":{"notice":"Emitted when an ETH bridge is initiated to the other chain."}},"notice":"The L1StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and L2. In the case that an ERC20 token is native to L1, it will be escrowed within this contract. If the ERC20 token is native to L2, it will be burnt. Before Bedrock, ETH was stored within this contract. After Bedrock, ETH is instead stored inside the OptimismPortal contract. NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples of some token types that may not be properly supported by this contract include, but are not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Contract of the messenger on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC20(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain."}},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"bridgeETH(uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with."}},"bridgeETHTo(address,uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_to":"Address of the receiver."}},"depositERC20(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2."}},"depositERC20To(address,address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2.","_to":"Address of the recipient on L2."}},"depositETH(uint32,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_minGasLimit":"Minimum gas limit for the deposit message on L2."}},"depositETHTo(address,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_minGasLimit":"Minimum gas limit for the deposit message on L2.","_to":"Address of the recipient on L2."}},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the ERC20 being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_localToken":"Address of the ERC20 on this chain.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"finalizeBridgeETH(address,address,uint256,bytes)":{"params":{"_amount":"Amount of ETH being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_to":"Address of the receiver."}},"finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the ERC20 to withdraw.","_extraData":"Optional data forwarded from L2.","_from":"Address of the withdrawer on L2.","_l1Token":"Address of the token on L1.","_l2Token":"Address of the corresponding token on L2.","_to":"Address of the recipient on L1."}},"finalizeETHWithdrawal(address,address,uint256,bytes)":{"params":{"_amount":"Amount of ETH to withdraw.","_extraData":"Optional data forwarded from L2.","_from":"Address of the withdrawer on L2.","_to":"Address of the recipient on L1."}},"initialize(address,address)":{"params":{"_messenger":"Contract for the CrossDomainMessenger on this network.","_superchainConfig":"Contract for the SuperchainConfig on this network."}},"l2TokenBridge()":{"returns":{"_0":"Address of the corresponding L2 bridge contract."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"events":{"ERC20DepositInitiated(address,address,address,address,uint256,bytes)":{"params":{"amount":"Amount of the ERC20 deposited.","extraData":"Extra data attached to the deposit.","from":"Address of the depositor.","l1Token":"Address of the token on L1.","l2Token":"Address of the corresponding token on L2.","to":"Address of the recipient on L2."}},"ERC20WithdrawalFinalized(address,address,address,address,uint256,bytes)":{"params":{"amount":"Amount of the ERC20 withdrawn.","extraData":"Extra data attached to the withdrawal.","from":"Address of the withdrawer.","l1Token":"Address of the token on L1.","l2Token":"Address of the corresponding token on L2.","to":"Address of the recipient on L1."}},"ETHDepositInitiated(address,address,uint256,bytes)":{"params":{"amount":"Amount of ETH deposited.","extraData":"Extra data attached to the deposit.","from":"Address of the depositor.","to":"Address of the recipient on L2."}},"ETHWithdrawalFinalized(address,address,uint256,bytes)":{"params":{"amount":"Amount of ETH withdrawn.","extraData":"Extra data attached to the withdrawal.","from":"Address of the withdrawer.","to":"Address of the recipient on L1."}}}},"ast":{"absolutePath":"src/L1/L1StandardBridge.sol","id":85922,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ISemver":[109417],"L1StandardBridge":[85921],"Predeploys":[104124],"StandardBridge":[111675],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:13868:132","nodes":[{"id":85420,"nodeType":"PragmaDirective","src":"32:23:132","nodes":[],"literals":["solidity","0.8",".15"]},{"id":85422,"nodeType":"ImportDirective","src":"57:58:132","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":85421,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"66:10:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85424,"nodeType":"ImportDirective","src":"116:66:132","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":85423,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"125:14:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85426,"nodeType":"ImportDirective","src":"183:52:132","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":85425,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"192:7:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85428,"nodeType":"ImportDirective","src":"236:78:132","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":85427,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"245:20:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85430,"nodeType":"ImportDirective","src":"315:63:132","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":85429,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"324:16:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85432,"nodeType":"ImportDirective","src":"379:56:132","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":85922,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":85431,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"388:9:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85921,"nodeType":"ContractDefinition","src":"1209:12690:132","nodes":[{"id":85448,"nodeType":"EventDefinition","src":"1590:101:132","nodes":[],"anonymous":false,"documentation":{"id":85438,"nodeType":"StructuredDocumentation","src":"1268:317:132","text":"@custom:legacy\n @notice Emitted whenever a deposit of ETH from L1 into L2 is initiated.\n @param from Address of the depositor.\n @param to Address of the recipient on L2.\n @param amount Amount of ETH deposited.\n @param extraData Extra data attached to the deposit."},"eventSelector":"35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23","name":"ETHDepositInitiated","nameLocation":"1596:19:132","parameters":{"id":85447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85440,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1632:4:132","nodeType":"VariableDeclaration","scope":85448,"src":"1616:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85439,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85442,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1654:2:132","nodeType":"VariableDeclaration","scope":85448,"src":"1638:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85441,"name":"address","nodeType":"ElementaryTypeName","src":"1638:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85444,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1666:6:132","nodeType":"VariableDeclaration","scope":85448,"src":"1658:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1658:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85446,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"1680:9:132","nodeType":"VariableDeclaration","scope":85448,"src":"1674:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85445,"name":"bytes","nodeType":"ElementaryTypeName","src":"1674:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1615:75:132"}},{"id":85459,"nodeType":"EventDefinition","src":"2024:104:132","nodes":[],"anonymous":false,"documentation":{"id":85449,"nodeType":"StructuredDocumentation","src":"1697:322:132","text":"@custom:legacy\n @notice Emitted whenever a withdrawal of ETH from L2 to L1 is finalized.\n @param from Address of the withdrawer.\n @param to Address of the recipient on L1.\n @param amount Amount of ETH withdrawn.\n @param extraData Extra data attached to the withdrawal."},"eventSelector":"2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631","name":"ETHWithdrawalFinalized","nameLocation":"2030:22:132","parameters":{"id":85458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85451,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2069:4:132","nodeType":"VariableDeclaration","scope":85459,"src":"2053:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85450,"name":"address","nodeType":"ElementaryTypeName","src":"2053:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85453,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2091:2:132","nodeType":"VariableDeclaration","scope":85459,"src":"2075:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85452,"name":"address","nodeType":"ElementaryTypeName","src":"2075:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85455,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2103:6:132","nodeType":"VariableDeclaration","scope":85459,"src":"2095:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85454,"name":"uint256","nodeType":"ElementaryTypeName","src":"2095:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85457,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2117:9:132","nodeType":"VariableDeclaration","scope":85459,"src":"2111:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85456,"name":"bytes","nodeType":"ElementaryTypeName","src":"2111:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2052:75:132"}},{"id":85474,"nodeType":"EventDefinition","src":"2566:199:132","nodes":[],"anonymous":false,"documentation":{"id":85460,"nodeType":"StructuredDocumentation","src":"2134:427:132","text":"@custom:legacy\n @notice Emitted whenever an ERC20 deposit is initiated.\n @param l1Token Address of the token on L1.\n @param l2Token Address of the corresponding token on L2.\n @param from Address of the depositor.\n @param to Address of the recipient on L2.\n @param amount Amount of the ERC20 deposited.\n @param extraData Extra data attached to the deposit."},"eventSelector":"718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396","name":"ERC20DepositInitiated","nameLocation":"2572:21:132","parameters":{"id":85473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85462,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2619:7:132","nodeType":"VariableDeclaration","scope":85474,"src":"2603:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85461,"name":"address","nodeType":"ElementaryTypeName","src":"2603:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85464,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2652:7:132","nodeType":"VariableDeclaration","scope":85474,"src":"2636:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85463,"name":"address","nodeType":"ElementaryTypeName","src":"2636:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85466,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2685:4:132","nodeType":"VariableDeclaration","scope":85474,"src":"2669:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85465,"name":"address","nodeType":"ElementaryTypeName","src":"2669:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85468,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2707:2:132","nodeType":"VariableDeclaration","scope":85474,"src":"2699:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85467,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85470,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2727:6:132","nodeType":"VariableDeclaration","scope":85474,"src":"2719:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85469,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85472,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2749:9:132","nodeType":"VariableDeclaration","scope":85474,"src":"2743:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85471,"name":"bytes","nodeType":"ElementaryTypeName","src":"2743:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2593:171:132"}},{"id":85489,"nodeType":"EventDefinition","src":"3210:202:132","nodes":[],"anonymous":false,"documentation":{"id":85475,"nodeType":"StructuredDocumentation","src":"2771:434:132","text":"@custom:legacy\n @notice Emitted whenever an ERC20 withdrawal is finalized.\n @param l1Token Address of the token on L1.\n @param l2Token Address of the corresponding token on L2.\n @param from Address of the withdrawer.\n @param to Address of the recipient on L1.\n @param amount Amount of the ERC20 withdrawn.\n @param extraData Extra data attached to the withdrawal."},"eventSelector":"3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3","name":"ERC20WithdrawalFinalized","nameLocation":"3216:24:132","parameters":{"id":85488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85477,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"3266:7:132","nodeType":"VariableDeclaration","scope":85489,"src":"3250:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85476,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85479,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"3299:7:132","nodeType":"VariableDeclaration","scope":85489,"src":"3283:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85478,"name":"address","nodeType":"ElementaryTypeName","src":"3283:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85481,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3332:4:132","nodeType":"VariableDeclaration","scope":85489,"src":"3316:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85480,"name":"address","nodeType":"ElementaryTypeName","src":"3316:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85483,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"3354:2:132","nodeType":"VariableDeclaration","scope":85489,"src":"3346:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85482,"name":"address","nodeType":"ElementaryTypeName","src":"3346:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85485,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"3374:6:132","nodeType":"VariableDeclaration","scope":85489,"src":"3366:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85484,"name":"uint256","nodeType":"ElementaryTypeName","src":"3366:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85487,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"3396:9:132","nodeType":"VariableDeclaration","scope":85489,"src":"3390:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85486,"name":"bytes","nodeType":"ElementaryTypeName","src":"3390:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3240:171:132"}},{"id":85493,"nodeType":"VariableDeclaration","src":"3481:40:132","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":85490,"nodeType":"StructuredDocumentation","src":"3418:58:132","text":"@notice Semantic version.\n @custom:semver 2.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"3504:7:132","scope":85921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85491,"name":"string","nodeType":"ElementaryTypeName","src":"3481:6:132","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e312e30","id":85492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3514:7:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb4aeded157fe72f9bc813a9dc1bd69961c5b5f35dafc6dc601ab742eacac6b","typeString":"literal_string \"2.1.0\""},"value":"2.1.0"},"visibility":"public"},{"id":85497,"nodeType":"VariableDeclaration","src":"3586:40:132","nodes":[],"constant":false,"documentation":{"id":85494,"nodeType":"StructuredDocumentation","src":"3528:53:132","text":"@notice Address of the SuperchainConfig contract."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"3610:16:132","scope":85921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85496,"nodeType":"UserDefinedTypeName","pathNode":{"id":85495,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"3586:16:132"},"referencedDeclaration":88793,"src":"3586:16:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":85519,"nodeType":"FunctionDefinition","src":"3691:157:132","nodes":[],"body":{"id":85518,"nodeType":"Block","src":"3722:126:132","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3786:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3778:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85505,"name":"address","nodeType":"ElementaryTypeName","src":"3778:7:132","typeDescriptions":{}}},"id":85508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3778:10:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85504,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"3757:20:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3757:32:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"hexValue":"30","id":85513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3835:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3827:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85511,"name":"address","nodeType":"ElementaryTypeName","src":"3827:7:132","typeDescriptions":{}}},"id":85514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3827:10:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85510,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"3810:16:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3810:28:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}],"id":85503,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85547,"src":"3732:10:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_SuperchainConfig_$88793_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract SuperchainConfig)"}},"id":85516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_superchainConfig"],"nodeType":"FunctionCall","src":"3732:109:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85517,"nodeType":"ExpressionStatement","src":"3732:109:132"}]},"documentation":{"id":85498,"nodeType":"StructuredDocumentation","src":"3633:53:132","text":"@notice Constructs the L1StandardBridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":85501,"kind":"baseConstructorSpecifier","modifierName":{"id":85500,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":111675,"src":"3705:14:132"},"nodeType":"ModifierInvocation","src":"3705:16:132"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85499,"nodeType":"ParameterList","parameters":[],"src":"3702:2:132"},"returnParameters":{"id":85502,"nodeType":"ParameterList","parameters":[],"src":"3722:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85547,"nodeType":"FunctionDefinition","src":"4055:322:132","nodes":[],"body":{"id":85546,"nodeType":"Block","src":"4163:214:132","nodes":[],"statements":[{"expression":{"id":85533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85531,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85497,"src":"4173:16:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85532,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85526,"src":"4192:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"4173:36:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85534,"nodeType":"ExpressionStatement","src":"4173:36:132"},{"expression":{"arguments":[{"id":85536,"name":"_messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85523,"src":"4267:10:132","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"expression":{"id":85540,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"4328:10:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_STANDARD_BRIDGE","nodeType":"MemberAccess","referencedDeclaration":104008,"src":"4328:29:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4320:8:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85538,"name":"address","nodeType":"ElementaryTypeName","src":"4320:8:132","stateMutability":"payable","typeDescriptions":{}}},"id":85542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4320:38:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85537,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"4305:14:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":85543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4305:54:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85535,"name":"__StandardBridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111080,"src":"4219:21:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":85544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"4219:151:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85545,"nodeType":"ExpressionStatement","src":"4219:151:132"}]},"documentation":{"id":85520,"nodeType":"StructuredDocumentation","src":"3854:196:132","text":"@notice Initializer.\n @param _messenger Contract for the CrossDomainMessenger on this network.\n @param _superchainConfig Contract for the SuperchainConfig on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85529,"kind":"modifierInvocation","modifierName":{"id":85528,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"4151:11:132"},"nodeType":"ModifierInvocation","src":"4151:11:132"}],"name":"initialize","nameLocation":"4064:10:132","parameters":{"id":85527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85523,"mutability":"mutable","name":"_messenger","nameLocation":"4096:10:132","nodeType":"VariableDeclaration","scope":85547,"src":"4075:31:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":85522,"nodeType":"UserDefinedTypeName","pathNode":{"id":85521,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"4075:20:132"},"referencedDeclaration":108888,"src":"4075:20:132","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"},{"constant":false,"id":85526,"mutability":"mutable","name":"_superchainConfig","nameLocation":"4125:17:132","nodeType":"VariableDeclaration","scope":85547,"src":"4108:34:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85525,"nodeType":"UserDefinedTypeName","pathNode":{"id":85524,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"4108:16:132"},"referencedDeclaration":88793,"src":"4108:16:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"}],"src":"4074:69:132"},"returnParameters":{"id":85530,"nodeType":"ParameterList","parameters":[],"src":"4163:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85559,"nodeType":"FunctionDefinition","src":"4418:103:132","nodes":[],"body":{"id":85558,"nodeType":"Block","src":"4472:49:132","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85554,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85497,"src":"4489:16:132","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"4489:23:132","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4489:25:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85553,"id":85557,"nodeType":"Return","src":"4482:32:132"}]},"baseFunctions":[111113],"documentation":{"id":85548,"nodeType":"StructuredDocumentation","src":"4383:30:132","text":"@inheritdoc StandardBridge"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"4427:6:132","overrides":{"id":85550,"nodeType":"OverrideSpecifier","overrides":[],"src":"4448:8:132"},"parameters":{"id":85549,"nodeType":"ParameterList","parameters":[],"src":"4433:2:132"},"returnParameters":{"id":85553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85559,"src":"4466:4:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85551,"name":"bool","nodeType":"ElementaryTypeName","src":"4466:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4465:6:132"},"scope":85921,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":85579,"nodeType":"FunctionDefinition","src":"4604:142:132","nodes":[],"body":{"id":85578,"nodeType":"Block","src":"4648:98:132","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":85567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4678:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4678:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4690:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4690:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85571,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110941,"src":"4702:25:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"hexValue":"","id":85574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4735:2:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":85573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4729:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":85572,"name":"bytes","nodeType":"ElementaryTypeName","src":"4729:5:132","typeDescriptions":{}}},"id":85575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4729:9:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85566,"name":"_initiateETHDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85755,"src":"4658:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint32,bytes memory)"}},"id":85576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4658:81:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85577,"nodeType":"ExpressionStatement","src":"4658:81:132"}]},"baseFunctions":[111084],"documentation":{"id":85560,"nodeType":"StructuredDocumentation","src":"4527:72:132","text":"@notice Allows EOAs to bridge ETH by sending directly to the bridge."},"implemented":true,"kind":"receive","modifiers":[{"id":85564,"kind":"modifierInvocation","modifierName":{"id":85563,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":111034,"src":"4640:7:132"},"nodeType":"ModifierInvocation","src":"4640:7:132"}],"name":"","nameLocation":"-1:-1:-1","overrides":{"id":85562,"nodeType":"OverrideSpecifier","overrides":[],"src":"4631:8:132"},"parameters":{"id":85561,"nodeType":"ParameterList","parameters":[],"src":"4611:2:132"},"returnParameters":{"id":85565,"nodeType":"ParameterList","parameters":[],"src":"4648:0:132"},"scope":85921,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":85599,"nodeType":"FunctionDefinition","src":"5183:179:132","nodes":[],"body":{"id":85598,"nodeType":"Block","src":"5276:86:132","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":85590,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5306:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5306:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85592,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5318:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5318:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85594,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85582,"src":"5330:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85595,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85584,"src":"5344:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85589,"name":"_initiateETHDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85755,"src":"5286:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint32,bytes memory)"}},"id":85596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5286:69:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85597,"nodeType":"ExpressionStatement","src":"5286:69:132"}]},"documentation":{"id":85580,"nodeType":"StructuredDocumentation","src":"4752:426:132","text":"@custom:legacy\n @notice Deposits some amount of ETH into the sender's account on L2.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2.\n Data supplied here will not be used to execute any code on L2 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"b1a1a882","implemented":true,"kind":"function","modifiers":[{"id":85587,"kind":"modifierInvocation","modifierName":{"id":85586,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":111034,"src":"5268:7:132"},"nodeType":"ModifierInvocation","src":"5268:7:132"}],"name":"depositETH","nameLocation":"5192:10:132","parameters":{"id":85585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85582,"mutability":"mutable","name":"_minGasLimit","nameLocation":"5210:12:132","nodeType":"VariableDeclaration","scope":85599,"src":"5203:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85581,"name":"uint32","nodeType":"ElementaryTypeName","src":"5203:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85584,"mutability":"mutable","name":"_extraData","nameLocation":"5239:10:132","nodeType":"VariableDeclaration","scope":85599,"src":"5224:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85583,"name":"bytes","nodeType":"ElementaryTypeName","src":"5224:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5202:48:132"},"returnParameters":{"id":85588,"nodeType":"ParameterList","parameters":[],"src":"5276:0:132"},"scope":85921,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":85618,"nodeType":"FunctionDefinition","src":"6242:179:132","nodes":[],"body":{"id":85617,"nodeType":"Block","src":"6342:79:132","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":85610,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6372:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6372:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85612,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85602,"src":"6384:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85613,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85604,"src":"6389:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85614,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85606,"src":"6403:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85609,"name":"_initiateETHDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85755,"src":"6352:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint32,bytes memory)"}},"id":85615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6352:62:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85616,"nodeType":"ExpressionStatement","src":"6352:62:132"}]},"documentation":{"id":85600,"nodeType":"StructuredDocumentation","src":"5368:869:132","text":"@custom:legacy\n @notice Deposits some amount of ETH into a target account on L2.\n Note that if ETH is sent to a contract on L2 and the call fails, then that ETH will\n be locked in the L2StandardBridge. ETH may be recoverable if the call can be\n successfully replayed by increasing the amount of gas supplied to the call. If the\n call will fail for any amount of gas, then the ETH will be locked permanently.\n @param _to Address of the recipient on L2.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2.\n Data supplied here will not be used to execute any code on L2 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"9a2ac6d5","implemented":true,"kind":"function","modifiers":[],"name":"depositETHTo","nameLocation":"6251:12:132","parameters":{"id":85607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85602,"mutability":"mutable","name":"_to","nameLocation":"6272:3:132","nodeType":"VariableDeclaration","scope":85618,"src":"6264:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85601,"name":"address","nodeType":"ElementaryTypeName","src":"6264:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85604,"mutability":"mutable","name":"_minGasLimit","nameLocation":"6284:12:132","nodeType":"VariableDeclaration","scope":85618,"src":"6277:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85603,"name":"uint32","nodeType":"ElementaryTypeName","src":"6277:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85606,"mutability":"mutable","name":"_extraData","nameLocation":"6313:10:132","nodeType":"VariableDeclaration","scope":85618,"src":"6298:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85605,"name":"bytes","nodeType":"ElementaryTypeName","src":"6298:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6263:61:132"},"returnParameters":{"id":85608,"nodeType":"ParameterList","parameters":[],"src":"6342:0:132"},"scope":85921,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":85647,"nodeType":"FunctionDefinition","src":"7066:339:132","nodes":[],"body":{"id":85646,"nodeType":"Block","src":"7288:117:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85635,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85621,"src":"7320:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85636,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85623,"src":"7330:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85637,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7340:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7340:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7352:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7352:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85641,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85625,"src":"7364:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85642,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85627,"src":"7373:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85643,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85629,"src":"7387:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85634,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85784,"src":"7298:21:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes memory)"}},"id":85644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7298:100:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85645,"nodeType":"ExpressionStatement","src":"7298:100:132"}]},"documentation":{"id":85619,"nodeType":"StructuredDocumentation","src":"6427:634:132","text":"@custom:legacy\n @notice Deposits some amount of ERC20 tokens into the sender's account on L2.\n @param _l1Token Address of the L1 token being deposited.\n @param _l2Token Address of the corresponding token on L2.\n @param _amount Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2.\n Data supplied here will not be used to execute any code on L2 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"58a997f6","implemented":true,"kind":"function","modifiers":[{"id":85632,"kind":"modifierInvocation","modifierName":{"id":85631,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":111034,"src":"7276:7:132"},"nodeType":"ModifierInvocation","src":"7276:7:132"}],"name":"depositERC20","nameLocation":"7075:12:132","parameters":{"id":85630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85621,"mutability":"mutable","name":"_l1Token","nameLocation":"7105:8:132","nodeType":"VariableDeclaration","scope":85647,"src":"7097:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85620,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85623,"mutability":"mutable","name":"_l2Token","nameLocation":"7131:8:132","nodeType":"VariableDeclaration","scope":85647,"src":"7123:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85622,"name":"address","nodeType":"ElementaryTypeName","src":"7123:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85625,"mutability":"mutable","name":"_amount","nameLocation":"7157:7:132","nodeType":"VariableDeclaration","scope":85647,"src":"7149:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85624,"name":"uint256","nodeType":"ElementaryTypeName","src":"7149:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85627,"mutability":"mutable","name":"_minGasLimit","nameLocation":"7181:12:132","nodeType":"VariableDeclaration","scope":85647,"src":"7174:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85626,"name":"uint32","nodeType":"ElementaryTypeName","src":"7174:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85629,"mutability":"mutable","name":"_extraData","nameLocation":"7218:10:132","nodeType":"VariableDeclaration","scope":85647,"src":"7203:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85628,"name":"bytes","nodeType":"ElementaryTypeName","src":"7203:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7087:147:132"},"returnParameters":{"id":85633,"nodeType":"ParameterList","parameters":[],"src":"7288:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":85675,"nodeType":"FunctionDefinition","src":"8106:339:132","nodes":[],"body":{"id":85674,"nodeType":"Block","src":"8335:110:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85664,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85650,"src":"8367:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85665,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85652,"src":"8377:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85666,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8387:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8387:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85668,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85654,"src":"8399:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85669,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85656,"src":"8404:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85670,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85658,"src":"8413:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85671,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85660,"src":"8427:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85663,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85784,"src":"8345:21:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes memory)"}},"id":85672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8345:93:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85673,"nodeType":"ExpressionStatement","src":"8345:93:132"}]},"documentation":{"id":85648,"nodeType":"StructuredDocumentation","src":"7411:690:132","text":"@custom:legacy\n @notice Deposits some amount of ERC20 tokens into a target account on L2.\n @param _l1Token Address of the L1 token being deposited.\n @param _l2Token Address of the corresponding token on L2.\n @param _to Address of the recipient on L2.\n @param _amount Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2.\n Data supplied here will not be used to execute any code on L2 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"838b2520","implemented":true,"kind":"function","modifiers":[],"name":"depositERC20To","nameLocation":"8115:14:132","parameters":{"id":85661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85650,"mutability":"mutable","name":"_l1Token","nameLocation":"8147:8:132","nodeType":"VariableDeclaration","scope":85675,"src":"8139:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85649,"name":"address","nodeType":"ElementaryTypeName","src":"8139:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85652,"mutability":"mutable","name":"_l2Token","nameLocation":"8173:8:132","nodeType":"VariableDeclaration","scope":85675,"src":"8165:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85651,"name":"address","nodeType":"ElementaryTypeName","src":"8165:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85654,"mutability":"mutable","name":"_to","nameLocation":"8199:3:132","nodeType":"VariableDeclaration","scope":85675,"src":"8191:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85653,"name":"address","nodeType":"ElementaryTypeName","src":"8191:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85656,"mutability":"mutable","name":"_amount","nameLocation":"8220:7:132","nodeType":"VariableDeclaration","scope":85675,"src":"8212:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85655,"name":"uint256","nodeType":"ElementaryTypeName","src":"8212:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85658,"mutability":"mutable","name":"_minGasLimit","nameLocation":"8244:12:132","nodeType":"VariableDeclaration","scope":85675,"src":"8237:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85657,"name":"uint32","nodeType":"ElementaryTypeName","src":"8237:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85660,"mutability":"mutable","name":"_extraData","nameLocation":"8281:10:132","nodeType":"VariableDeclaration","scope":85675,"src":"8266:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85659,"name":"bytes","nodeType":"ElementaryTypeName","src":"8266:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8129:168:132"},"returnParameters":{"id":85662,"nodeType":"ParameterList","parameters":[],"src":"8335:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":85695,"nodeType":"FunctionDefinition","src":"8758:245:132","nodes":[],"body":{"id":85694,"nodeType":"Block","src":"8936:67:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85688,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85678,"src":"8964:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85689,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85680,"src":"8971:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85690,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85682,"src":"8976:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85691,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85684,"src":"8985:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85687,"name":"finalizeBridgeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111287,"src":"8946:17:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes calldata)"}},"id":85692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8946:50:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85693,"nodeType":"ExpressionStatement","src":"8946:50:132"}]},"documentation":{"id":85676,"nodeType":"StructuredDocumentation","src":"8451:302:132","text":"@custom:legacy\n @notice Finalizes a withdrawal of ETH from L2.\n @param _from Address of the withdrawer on L2.\n @param _to Address of the recipient on L1.\n @param _amount Amount of ETH to withdraw.\n @param _extraData Optional data forwarded from L2."},"functionSelector":"1532ec34","implemented":true,"kind":"function","modifiers":[],"name":"finalizeETHWithdrawal","nameLocation":"8767:21:132","parameters":{"id":85685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85678,"mutability":"mutable","name":"_from","nameLocation":"8806:5:132","nodeType":"VariableDeclaration","scope":85695,"src":"8798:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85677,"name":"address","nodeType":"ElementaryTypeName","src":"8798:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85680,"mutability":"mutable","name":"_to","nameLocation":"8829:3:132","nodeType":"VariableDeclaration","scope":85695,"src":"8821:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85679,"name":"address","nodeType":"ElementaryTypeName","src":"8821:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85682,"mutability":"mutable","name":"_amount","nameLocation":"8850:7:132","nodeType":"VariableDeclaration","scope":85695,"src":"8842:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85681,"name":"uint256","nodeType":"ElementaryTypeName","src":"8842:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85684,"mutability":"mutable","name":"_extraData","nameLocation":"8882:10:132","nodeType":"VariableDeclaration","scope":85695,"src":"8867:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85683,"name":"bytes","nodeType":"ElementaryTypeName","src":"8867:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8788:110:132"},"returnParameters":{"id":85686,"nodeType":"ParameterList","parameters":[],"src":"8936:0:132"},"scope":85921,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":85721,"nodeType":"FunctionDefinition","src":"9453:305:132","nodes":[],"body":{"id":85720,"nodeType":"Block","src":"9669:89:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85712,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85698,"src":"9699:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85713,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85700,"src":"9709:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85714,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85702,"src":"9719:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85715,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85704,"src":"9726:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85716,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85706,"src":"9731:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85717,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85708,"src":"9740:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85711,"name":"finalizeBridgeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111367,"src":"9679:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes calldata)"}},"id":85718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9679:72:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85719,"nodeType":"ExpressionStatement","src":"9679:72:132"}]},"documentation":{"id":85696,"nodeType":"StructuredDocumentation","src":"9009:439:132","text":"@custom:legacy\n @notice Finalizes a withdrawal of ERC20 tokens from L2.\n @param _l1Token Address of the token on L1.\n @param _l2Token Address of the corresponding token on L2.\n @param _from Address of the withdrawer on L2.\n @param _to Address of the recipient on L1.\n @param _amount Amount of the ERC20 to withdraw.\n @param _extraData Optional data forwarded from L2."},"functionSelector":"a9f9e675","implemented":true,"kind":"function","modifiers":[],"name":"finalizeERC20Withdrawal","nameLocation":"9462:23:132","parameters":{"id":85709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85698,"mutability":"mutable","name":"_l1Token","nameLocation":"9503:8:132","nodeType":"VariableDeclaration","scope":85721,"src":"9495:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85697,"name":"address","nodeType":"ElementaryTypeName","src":"9495:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85700,"mutability":"mutable","name":"_l2Token","nameLocation":"9529:8:132","nodeType":"VariableDeclaration","scope":85721,"src":"9521:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85699,"name":"address","nodeType":"ElementaryTypeName","src":"9521:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85702,"mutability":"mutable","name":"_from","nameLocation":"9555:5:132","nodeType":"VariableDeclaration","scope":85721,"src":"9547:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85701,"name":"address","nodeType":"ElementaryTypeName","src":"9547:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85704,"mutability":"mutable","name":"_to","nameLocation":"9578:3:132","nodeType":"VariableDeclaration","scope":85721,"src":"9570:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85703,"name":"address","nodeType":"ElementaryTypeName","src":"9570:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85706,"mutability":"mutable","name":"_amount","nameLocation":"9599:7:132","nodeType":"VariableDeclaration","scope":85721,"src":"9591:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85705,"name":"uint256","nodeType":"ElementaryTypeName","src":"9591:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85708,"mutability":"mutable","name":"_extraData","nameLocation":"9631:10:132","nodeType":"VariableDeclaration","scope":85721,"src":"9616:25:132","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85707,"name":"bytes","nodeType":"ElementaryTypeName","src":"9616:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9485:162:132"},"returnParameters":{"id":85710,"nodeType":"ParameterList","parameters":[],"src":"9669:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":85733,"nodeType":"FunctionDefinition","src":"9930:101:132","nodes":[],"body":{"id":85732,"nodeType":"Block","src":"9987:44:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85729,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110962,"src":"10012:11:132","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10004:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85727,"name":"address","nodeType":"ElementaryTypeName","src":"10004:7:132","typeDescriptions":{}}},"id":85730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10004:20:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":85726,"id":85731,"nodeType":"Return","src":"9997:27:132"}]},"documentation":{"id":85722,"nodeType":"StructuredDocumentation","src":"9764:161:132","text":"@custom:legacy\n @notice Retrieves the access of the corresponding L2 bridge contract.\n @return Address of the corresponding L2 bridge contract."},"functionSelector":"91c49bf8","implemented":true,"kind":"function","modifiers":[],"name":"l2TokenBridge","nameLocation":"9939:13:132","parameters":{"id":85723,"nodeType":"ParameterList","parameters":[],"src":"9952:2:132"},"returnParameters":{"id":85726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85733,"src":"9978:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85724,"name":"address","nodeType":"ElementaryTypeName","src":"9978:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9977:9:132"},"scope":85921,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":85755,"nodeType":"FunctionDefinition","src":"10356:196:132","nodes":[],"body":{"id":85754,"nodeType":"Block","src":"10468:84:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85746,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85736,"src":"10497:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85747,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85738,"src":"10504:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":85748,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10509:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"10509:9:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85750,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85740,"src":"10520:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85751,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85742,"src":"10534:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85745,"name":"_initiateBridgeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111419,"src":"10478:18:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint32,bytes memory)"}},"id":85752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10478:67:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85753,"nodeType":"ExpressionStatement","src":"10478:67:132"}]},"documentation":{"id":85734,"nodeType":"StructuredDocumentation","src":"10037:314:132","text":"@notice Internal function for initiating an ETH deposit.\n @param _from Address of the sender on L1.\n @param _to Address of the recipient on L2.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2."},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateETHDeposit","nameLocation":"10365:19:132","parameters":{"id":85743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85736,"mutability":"mutable","name":"_from","nameLocation":"10393:5:132","nodeType":"VariableDeclaration","scope":85755,"src":"10385:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85735,"name":"address","nodeType":"ElementaryTypeName","src":"10385:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85738,"mutability":"mutable","name":"_to","nameLocation":"10408:3:132","nodeType":"VariableDeclaration","scope":85755,"src":"10400:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85737,"name":"address","nodeType":"ElementaryTypeName","src":"10400:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85740,"mutability":"mutable","name":"_minGasLimit","nameLocation":"10420:12:132","nodeType":"VariableDeclaration","scope":85755,"src":"10413:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85739,"name":"uint32","nodeType":"ElementaryTypeName","src":"10413:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85742,"mutability":"mutable","name":"_extraData","nameLocation":"10447:10:132","nodeType":"VariableDeclaration","scope":85755,"src":"10434:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85741,"name":"bytes","nodeType":"ElementaryTypeName","src":"10434:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10384:74:132"},"returnParameters":{"id":85744,"nodeType":"ParameterList","parameters":[],"src":"10468:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85784,"nodeType":"FunctionDefinition","src":"11078:345:132","nodes":[],"body":{"id":85783,"nodeType":"Block","src":"11319:104:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":85774,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85758,"src":"11350:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85775,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85760,"src":"11360:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85776,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85762,"src":"11370:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85777,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85764,"src":"11377:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85778,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85766,"src":"11382:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85779,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85768,"src":"11391:12:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":85780,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85770,"src":"11405:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85773,"name":"_initiateBridgeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111517,"src":"11329:20:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes memory)"}},"id":85781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11329:87:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85782,"nodeType":"ExpressionStatement","src":"11329:87:132"}]},"documentation":{"id":85756,"nodeType":"StructuredDocumentation","src":"10558:515:132","text":"@notice Internal function for initiating an ERC20 deposit.\n @param _l1Token Address of the L1 token being deposited.\n @param _l2Token Address of the corresponding token on L2.\n @param _from Address of the sender on L1.\n @param _to Address of the recipient on L2.\n @param _amount Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData Optional data to forward to L2."},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateERC20Deposit","nameLocation":"11087:21:132","parameters":{"id":85771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85758,"mutability":"mutable","name":"_l1Token","nameLocation":"11126:8:132","nodeType":"VariableDeclaration","scope":85784,"src":"11118:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85757,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85760,"mutability":"mutable","name":"_l2Token","nameLocation":"11152:8:132","nodeType":"VariableDeclaration","scope":85784,"src":"11144:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85759,"name":"address","nodeType":"ElementaryTypeName","src":"11144:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85762,"mutability":"mutable","name":"_from","nameLocation":"11178:5:132","nodeType":"VariableDeclaration","scope":85784,"src":"11170:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85761,"name":"address","nodeType":"ElementaryTypeName","src":"11170:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85764,"mutability":"mutable","name":"_to","nameLocation":"11201:3:132","nodeType":"VariableDeclaration","scope":85784,"src":"11193:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85763,"name":"address","nodeType":"ElementaryTypeName","src":"11193:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85766,"mutability":"mutable","name":"_amount","nameLocation":"11222:7:132","nodeType":"VariableDeclaration","scope":85784,"src":"11214:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85765,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85768,"mutability":"mutable","name":"_minGasLimit","nameLocation":"11246:12:132","nodeType":"VariableDeclaration","scope":85784,"src":"11239:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85767,"name":"uint32","nodeType":"ElementaryTypeName","src":"11239:6:132","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85770,"mutability":"mutable","name":"_extraData","nameLocation":"11281:10:132","nodeType":"VariableDeclaration","scope":85784,"src":"11268:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85769,"name":"bytes","nodeType":"ElementaryTypeName","src":"11268:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11108:189:132"},"returnParameters":{"id":85772,"nodeType":"ParameterList","parameters":[],"src":"11319:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85814,"nodeType":"FunctionDefinition","src":"11651:325:132","nodes":[],"body":{"id":85813,"nodeType":"Block","src":"11830:146:132","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":85798,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85787,"src":"11865:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85799,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85789,"src":"11872:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85800,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85791,"src":"11877:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85801,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85793,"src":"11886:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85797,"name":"ETHDepositInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85448,"src":"11845:19:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":85802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11845:52:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85803,"nodeType":"EmitStatement","src":"11840:57:132"},{"expression":{"arguments":[{"id":85807,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85787,"src":"11937:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85808,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85789,"src":"11944:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85809,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85791,"src":"11949:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85810,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85793,"src":"11958:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85804,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"11907:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L1StandardBridge_$85921_$","typeString":"type(contract super L1StandardBridge)"}},"id":85806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitETHBridgeInitiated","nodeType":"MemberAccess","referencedDeclaration":111602,"src":"11907:29:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":85811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11907:62:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85812,"nodeType":"ExpressionStatement","src":"11907:62:132"}]},"baseFunctions":[111602],"documentation":{"id":85785,"nodeType":"StructuredDocumentation","src":"11429:217:132","text":"@inheritdoc StandardBridge\n @notice Emits the legacy ETHDepositInitiated event followed by the ETHBridgeInitiated event.\n This is necessary for backwards compatibility with the legacy bridge."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitETHBridgeInitiated","nameLocation":"11660:23:132","overrides":{"id":85795,"nodeType":"OverrideSpecifier","overrides":[],"src":"11817:8:132"},"parameters":{"id":85794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85787,"mutability":"mutable","name":"_from","nameLocation":"11701:5:132","nodeType":"VariableDeclaration","scope":85814,"src":"11693:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85786,"name":"address","nodeType":"ElementaryTypeName","src":"11693:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85789,"mutability":"mutable","name":"_to","nameLocation":"11724:3:132","nodeType":"VariableDeclaration","scope":85814,"src":"11716:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85788,"name":"address","nodeType":"ElementaryTypeName","src":"11716:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85791,"mutability":"mutable","name":"_amount","nameLocation":"11745:7:132","nodeType":"VariableDeclaration","scope":85814,"src":"11737:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85790,"name":"uint256","nodeType":"ElementaryTypeName","src":"11737:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85793,"mutability":"mutable","name":"_extraData","nameLocation":"11775:10:132","nodeType":"VariableDeclaration","scope":85814,"src":"11762:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85792,"name":"bytes","nodeType":"ElementaryTypeName","src":"11762:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11683:108:132"},"returnParameters":{"id":85796,"nodeType":"ParameterList","parameters":[],"src":"11830:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85844,"nodeType":"FunctionDefinition","src":"12208:328:132","nodes":[],"body":{"id":85843,"nodeType":"Block","src":"12387:149:132","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":85828,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85817,"src":"12425:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85829,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85819,"src":"12432:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85830,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85821,"src":"12437:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85831,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85823,"src":"12446:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85827,"name":"ETHWithdrawalFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85459,"src":"12402:22:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":85832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12402:55:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85833,"nodeType":"EmitStatement","src":"12397:60:132"},{"expression":{"arguments":[{"id":85837,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85817,"src":"12497:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85838,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85819,"src":"12504:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85839,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85821,"src":"12509:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85840,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85823,"src":"12518:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85834,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"12467:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L1StandardBridge_$85921_$","typeString":"type(contract super L1StandardBridge)"}},"id":85836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitETHBridgeFinalized","nodeType":"MemberAccess","referencedDeclaration":111622,"src":"12467:29:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":85841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12467:62:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85842,"nodeType":"ExpressionStatement","src":"12467:62:132"}]},"baseFunctions":[111622],"documentation":{"id":85815,"nodeType":"StructuredDocumentation","src":"11982:221:132","text":"@inheritdoc StandardBridge\n @notice Emits the legacy ERC20DepositInitiated event followed by the ERC20BridgeInitiated\n event. This is necessary for backwards compatibility with the legacy bridge."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitETHBridgeFinalized","nameLocation":"12217:23:132","overrides":{"id":85825,"nodeType":"OverrideSpecifier","overrides":[],"src":"12374:8:132"},"parameters":{"id":85824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85817,"mutability":"mutable","name":"_from","nameLocation":"12258:5:132","nodeType":"VariableDeclaration","scope":85844,"src":"12250:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85816,"name":"address","nodeType":"ElementaryTypeName","src":"12250:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85819,"mutability":"mutable","name":"_to","nameLocation":"12281:3:132","nodeType":"VariableDeclaration","scope":85844,"src":"12273:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85818,"name":"address","nodeType":"ElementaryTypeName","src":"12273:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85821,"mutability":"mutable","name":"_amount","nameLocation":"12302:7:132","nodeType":"VariableDeclaration","scope":85844,"src":"12294:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85820,"name":"uint256","nodeType":"ElementaryTypeName","src":"12294:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85823,"mutability":"mutable","name":"_extraData","nameLocation":"12332:10:132","nodeType":"VariableDeclaration","scope":85844,"src":"12319:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85822,"name":"bytes","nodeType":"ElementaryTypeName","src":"12319:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12240:108:132"},"returnParameters":{"id":85826,"nodeType":"ParameterList","parameters":[],"src":"12387:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85882,"nodeType":"FunctionDefinition","src":"12771:444:132","nodes":[],"body":{"id":85881,"nodeType":"Block","src":"13011:204:132","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":85862,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85847,"src":"13048:11:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85863,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85849,"src":"13061:12:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85864,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85851,"src":"13075:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85865,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85853,"src":"13082:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85866,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85855,"src":"13087:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85867,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85857,"src":"13096:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85861,"name":"ERC20DepositInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85474,"src":"13026:21:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13026:81:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85869,"nodeType":"EmitStatement","src":"13021:86:132"},{"expression":{"arguments":[{"id":85873,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85847,"src":"13149:11:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85874,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85849,"src":"13162:12:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85875,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85851,"src":"13176:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85876,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85853,"src":"13183:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85877,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85855,"src":"13188:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85878,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85857,"src":"13197:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85870,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"13117:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L1StandardBridge_$85921_$","typeString":"type(contract super L1StandardBridge)"}},"id":85872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitERC20BridgeInitiated","nodeType":"MemberAccess","referencedDeclaration":111648,"src":"13117:31:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13117:91:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85880,"nodeType":"ExpressionStatement","src":"13117:91:132"}]},"baseFunctions":[111648],"documentation":{"id":85845,"nodeType":"StructuredDocumentation","src":"12542:224:132","text":"@inheritdoc StandardBridge\n @notice Emits the legacy ERC20WithdrawalFinalized event followed by the ERC20BridgeFinalized\n event. This is necessary for backwards compatibility with the legacy bridge."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitERC20BridgeInitiated","nameLocation":"12780:25:132","overrides":{"id":85859,"nodeType":"OverrideSpecifier","overrides":[],"src":"12998:8:132"},"parameters":{"id":85858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85847,"mutability":"mutable","name":"_localToken","nameLocation":"12823:11:132","nodeType":"VariableDeclaration","scope":85882,"src":"12815:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85846,"name":"address","nodeType":"ElementaryTypeName","src":"12815:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85849,"mutability":"mutable","name":"_remoteToken","nameLocation":"12852:12:132","nodeType":"VariableDeclaration","scope":85882,"src":"12844:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85848,"name":"address","nodeType":"ElementaryTypeName","src":"12844:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85851,"mutability":"mutable","name":"_from","nameLocation":"12882:5:132","nodeType":"VariableDeclaration","scope":85882,"src":"12874:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85850,"name":"address","nodeType":"ElementaryTypeName","src":"12874:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85853,"mutability":"mutable","name":"_to","nameLocation":"12905:3:132","nodeType":"VariableDeclaration","scope":85882,"src":"12897:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85852,"name":"address","nodeType":"ElementaryTypeName","src":"12897:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85855,"mutability":"mutable","name":"_amount","nameLocation":"12926:7:132","nodeType":"VariableDeclaration","scope":85882,"src":"12918:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85854,"name":"uint256","nodeType":"ElementaryTypeName","src":"12918:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85857,"mutability":"mutable","name":"_extraData","nameLocation":"12956:10:132","nodeType":"VariableDeclaration","scope":85882,"src":"12943:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85856,"name":"bytes","nodeType":"ElementaryTypeName","src":"12943:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12805:167:132"},"returnParameters":{"id":85860,"nodeType":"ParameterList","parameters":[],"src":"13011:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85920,"nodeType":"FunctionDefinition","src":"13450:447:132","nodes":[],"body":{"id":85919,"nodeType":"Block","src":"13690:207:132","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":85900,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85885,"src":"13730:11:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85901,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85887,"src":"13743:12:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85902,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85889,"src":"13757:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85903,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85891,"src":"13764:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85904,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85893,"src":"13769:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85905,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85895,"src":"13778:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85899,"name":"ERC20WithdrawalFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85489,"src":"13705:24:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13705:84:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85907,"nodeType":"EmitStatement","src":"13700:89:132"},{"expression":{"arguments":[{"id":85911,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85885,"src":"13831:11:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85912,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85887,"src":"13844:12:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85913,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85889,"src":"13858:5:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85914,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85891,"src":"13865:3:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85915,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85893,"src":"13870:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85916,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85895,"src":"13879:10:132","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85908,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"13799:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L1StandardBridge_$85921_$","typeString":"type(contract super L1StandardBridge)"}},"id":85910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitERC20BridgeFinalized","nodeType":"MemberAccess","referencedDeclaration":111674,"src":"13799:31:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13799:91:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85918,"nodeType":"ExpressionStatement","src":"13799:91:132"}]},"baseFunctions":[111674],"documentation":{"id":85883,"nodeType":"StructuredDocumentation","src":"13221:224:132","text":"@inheritdoc StandardBridge\n @notice Emits the legacy ERC20WithdrawalFinalized event followed by the ERC20BridgeFinalized\n event. This is necessary for backwards compatibility with the legacy bridge."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitERC20BridgeFinalized","nameLocation":"13459:25:132","overrides":{"id":85897,"nodeType":"OverrideSpecifier","overrides":[],"src":"13677:8:132"},"parameters":{"id":85896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85885,"mutability":"mutable","name":"_localToken","nameLocation":"13502:11:132","nodeType":"VariableDeclaration","scope":85920,"src":"13494:19:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85884,"name":"address","nodeType":"ElementaryTypeName","src":"13494:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85887,"mutability":"mutable","name":"_remoteToken","nameLocation":"13531:12:132","nodeType":"VariableDeclaration","scope":85920,"src":"13523:20:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85886,"name":"address","nodeType":"ElementaryTypeName","src":"13523:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85889,"mutability":"mutable","name":"_from","nameLocation":"13561:5:132","nodeType":"VariableDeclaration","scope":85920,"src":"13553:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85888,"name":"address","nodeType":"ElementaryTypeName","src":"13553:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85891,"mutability":"mutable","name":"_to","nameLocation":"13584:3:132","nodeType":"VariableDeclaration","scope":85920,"src":"13576:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85890,"name":"address","nodeType":"ElementaryTypeName","src":"13576:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85893,"mutability":"mutable","name":"_amount","nameLocation":"13605:7:132","nodeType":"VariableDeclaration","scope":85920,"src":"13597:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85892,"name":"uint256","nodeType":"ElementaryTypeName","src":"13597:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85895,"mutability":"mutable","name":"_extraData","nameLocation":"13635:10:132","nodeType":"VariableDeclaration","scope":85920,"src":"13622:23:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85894,"name":"bytes","nodeType":"ElementaryTypeName","src":"13622:5:132","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13484:167:132"},"returnParameters":{"id":85898,"nodeType":"ParameterList","parameters":[],"src":"13690:0:132"},"scope":85921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":85434,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":111675,"src":"1238:14:132"},"id":85435,"nodeType":"InheritanceSpecifier","src":"1238:14:132"},{"baseName":{"id":85436,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1254:7:132"},"id":85437,"nodeType":"InheritanceSpecifier","src":"1254:7:132"}],"canonicalName":"L1StandardBridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":85433,"nodeType":"StructuredDocumentation","src":"437:772:132","text":"@custom:proxied\n @title L1StandardBridge\n @notice The L1StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and\n L2. In the case that an ERC20 token is native to L1, it will be escrowed within this\n contract. If the ERC20 token is native to L2, it will be burnt. Before Bedrock, ETH was\n stored within this contract. After Bedrock, ETH is instead stored inside the\n OptimismPortal contract.\n NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples\n of some token types that may not be properly supported by this contract include, but are\n not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists."},"fullyImplemented":true,"linearizedBaseContracts":[85921,109417,111675,49678],"name":"L1StandardBridge","nameLocation":"1218:16:132","scope":85922,"usedErrors":[]}],"license":"MIT"},"id":132} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L2CrossDomainMessenger.json b/packages/sdk/src/forge-artifacts/L2CrossDomainMessenger.json new file mode 100644 index 000000000000..9877d7506eb5 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L2CrossDomainMessenger.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"OTHER_MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CALL_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CONSTANT_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_GAS_CHECK_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_RESERVED_GAS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"baseGas","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_l1CrossDomainMessenger","type":"address","internalType":"contract CrossDomainMessenger"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1CrossDomainMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"otherMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"messageNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SentMessageExtension1","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000239565b600054600160a81b900460ff16158080156200004d57506000546001600160a01b90910460ff16105b806200008457506200006a306200017360201b620013071760201c565b158015620000845750600054600160a01b900460ff166001145b620000ed5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b17905580156200011b576000805460ff60a81b1916600160a81b1790555b620001268262000182565b80156200016f576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620001f15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e4565b60cc546001600160a01b0316620002175760cc80546001600160a01b03191661dead1790555b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b611c8280620002496000396000f3fe60806040526004361061016a5760003560e01c806383a74074116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b146103c7578063db505d80146103da578063ecc704281461040757600080fd5b8063b1b1b20914610357578063b28ade2514610387578063c4d66de8146103a757600080fd5b80639fce812c116100b05780639fce812c146102fc578063a4e7f8bd14610327578063a7119869146102fc57600080fd5b806383a74074146102e55780638cbeeef21461020957600080fd5b80634c1d6a69116101225780635644cfdf116101075780635644cfdf146102755780635c975abb1461028b5780636e296e45146102ab57600080fd5b80634c1d6a691461020957806354fd4d501461021f57600080fd5b80632828d7e8116101535780632828d7e8146101b75780633dbb202b146101cc5780633f827a5a146101e157600080fd5b8063028f85f71461016f5780630c568498146101a2575b600080fd5b34801561017b57600080fd5b50610184601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101ae57600080fd5b50610184603f81565b3480156101c357600080fd5b50610184604081565b6101df6101da36600461177b565b61046c565b005b3480156101ed57600080fd5b506101f6600181565b60405161ffff9091168152602001610199565b34801561021557600080fd5b50610184619c4081565b34801561022b57600080fd5b506102686040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b604051610199919061184d565b34801561028157600080fd5b5061018461138881565b34801561029757600080fd5b5060005b6040519015158152602001610199565b3480156102b757600080fd5b506102c06106c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610199565b3480156102f157600080fd5b5061018462030d4081565b34801561030857600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102c0565b34801561033357600080fd5b5061029b610342366004611867565b60ce6020526000908152604090205460ff1681565b34801561036357600080fd5b5061029b610372366004611867565b60cb6020526000908152604090205460ff1681565b34801561039357600080fd5b506101846103a2366004611880565b6107b5565b3480156103b357600080fd5b506101df6103c23660046118d4565b610823565b6101df6103d53660046118f1565b610a22565b3480156103e657600080fd5b5060cf546102c09073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5061045e60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b604051908152602001610199565b60cf5461059e9073ffffffffffffffffffffffffffffffffffffffff166104948585856107b5565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061050060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161051c97969594939291906119c0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611323565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561062360cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610635959493929190611a1f565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f6107d1604063ffffffff8816611a9c565b6107db9190611acc565b6107e6601088611a9c565b6107f39062030d40611b1a565b6107fd9190611b1a565b6108079190611b1a565b6108119190611b1a565b61081b9190611b1a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff161580801561086e575060005460017401000000000000000000000000000000000000000090910460ff16105b806108a05750303b1580156108a0575060005474010000000000000000000000000000000000000000900460ff166001145b61092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161078f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156109b257600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b6109bb826113b1565b8015610a1e57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161078f565b8061ffff16600003610bd2576000610b2e878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506114ed915050565b600081815260cb602052604090205490915060ff1615610bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161078f565b505b6000610c18898989898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150c92505050565b9050610c6160cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610c9957853414610c7557610c75611b46565b600081815260ce602052604090205460ff1615610c9457610c94611b46565b610deb565b3415610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161078f565b600081815260ce602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161078f565b610df48761152f565b15610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161078f565b600081815260cb602052604090205460ff1615610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161078f565b610f6785610f58611388619c40611b1a565b67ffffffffffffffff16611584565b1580610f8d575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b156110a657600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b50506112fe565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061113788619c405a6110fa9190611b75565b8988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115a292505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156111ed57600082815260cb602052604090205460ff161561118a5761118a611b46565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26112fa565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061137990889088908790600401611b8c565b6000604051808303818588803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff1661145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161078f565b60cc5473ffffffffffffffffffffffffffffffffffffffff166114a65760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006114fb858585856115bc565b805190602001209050949350505050565b600061151c878787878787611655565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff821630148061157e575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b6060848484846040516024016115d59493929190611bd4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161167296959493929190611c1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461171657600080fd5b50565b60008083601f84011261172b57600080fd5b50813567ffffffffffffffff81111561174357600080fd5b60208301915083602082850101111561175b57600080fd5b9250929050565b803563ffffffff8116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b843561179c816116f4565b9350602085013567ffffffffffffffff8111156117b857600080fd5b6117c487828801611719565b90945092506117d7905060408601611762565b905092959194509250565b6000815180845260005b81811015611808576020818501810151868301820152016117ec565b8181111561181a576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061186060208301846117e2565b9392505050565b60006020828403121561187957600080fd5b5035919050565b60008060006040848603121561189557600080fd5b833567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611719565b90945092506118cb905060208501611762565b90509250925092565b6000602082840312156118e657600080fd5b8135611860816116f4565b600080600080600080600060c0888a03121561190c57600080fd5b87359650602088013561191e816116f4565b9550604088013561192e816116f4565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561195857600080fd5b6119648a828b01611719565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611a1260c083018486611977565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611a4f608083018688611977565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611ac357611ac3611a6d565b02949350505050565b600067ffffffffffffffff80841680611b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611b3d57611b3d611a6d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611b8757611b87611a6d565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000611bcb60608301846117e2565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611c0d60808301856117e2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611c6960c08301846117e2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"812:1752:147:-:0;;;1023:127;;;;;;;;;-1:-1:-1;1070:73:147::1;1137:1;1070:10;:73::i;:::-;812:1752:::0;;1278:175;3111:19:27;3134:13;-1:-1:-1;;;3134:13:27;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;-1:-1:-1;;;3197:12:27;;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;-1:-1:-1;;;3268:12:27;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;;;3368:16:27;-1:-1:-1;;;3368:16:27;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:27;-1:-1:-1;;;3428:20:27;;;3394:65;1373:73:147::1;1420:23:::0;1373:27:::1;:73::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;1278:175:147;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;18503:636:223:-;4910:13:27;;-1:-1:-1;;;4910:13:27;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;18988:16:223::1;::::0;-1:-1:-1;;;;;18988:16:223::1;18984:107;;19034:16;:46:::0;;-1:-1:-1;;;;;;19034:46:223::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;-1:-1:-1;;;;;;19100:32:223::1;-1:-1:-1::0;;;;;19100:32:223;;;::::1;::::0;;;::::1;::::0;;18503:636::o;628:407:357:-;812:1752:147;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061016a5760003560e01c806383a74074116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b146103c7578063db505d80146103da578063ecc704281461040757600080fd5b8063b1b1b20914610357578063b28ade2514610387578063c4d66de8146103a757600080fd5b80639fce812c116100b05780639fce812c146102fc578063a4e7f8bd14610327578063a7119869146102fc57600080fd5b806383a74074146102e55780638cbeeef21461020957600080fd5b80634c1d6a69116101225780635644cfdf116101075780635644cfdf146102755780635c975abb1461028b5780636e296e45146102ab57600080fd5b80634c1d6a691461020957806354fd4d501461021f57600080fd5b80632828d7e8116101535780632828d7e8146101b75780633dbb202b146101cc5780633f827a5a146101e157600080fd5b8063028f85f71461016f5780630c568498146101a2575b600080fd5b34801561017b57600080fd5b50610184601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101ae57600080fd5b50610184603f81565b3480156101c357600080fd5b50610184604081565b6101df6101da36600461177b565b61046c565b005b3480156101ed57600080fd5b506101f6600181565b60405161ffff9091168152602001610199565b34801561021557600080fd5b50610184619c4081565b34801561022b57600080fd5b506102686040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b604051610199919061184d565b34801561028157600080fd5b5061018461138881565b34801561029757600080fd5b5060005b6040519015158152602001610199565b3480156102b757600080fd5b506102c06106c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610199565b3480156102f157600080fd5b5061018462030d4081565b34801561030857600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102c0565b34801561033357600080fd5b5061029b610342366004611867565b60ce6020526000908152604090205460ff1681565b34801561036357600080fd5b5061029b610372366004611867565b60cb6020526000908152604090205460ff1681565b34801561039357600080fd5b506101846103a2366004611880565b6107b5565b3480156103b357600080fd5b506101df6103c23660046118d4565b610823565b6101df6103d53660046118f1565b610a22565b3480156103e657600080fd5b5060cf546102c09073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5061045e60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b604051908152602001610199565b60cf5461059e9073ffffffffffffffffffffffffffffffffffffffff166104948585856107b5565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061050060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161051c97969594939291906119c0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611323565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561062360cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610635959493929190611a1f565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f6107d1604063ffffffff8816611a9c565b6107db9190611acc565b6107e6601088611a9c565b6107f39062030d40611b1a565b6107fd9190611b1a565b6108079190611b1a565b6108119190611b1a565b61081b9190611b1a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff161580801561086e575060005460017401000000000000000000000000000000000000000090910460ff16105b806108a05750303b1580156108a0575060005474010000000000000000000000000000000000000000900460ff166001145b61092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161078f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156109b257600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b6109bb826113b1565b8015610a1e57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161078f565b8061ffff16600003610bd2576000610b2e878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506114ed915050565b600081815260cb602052604090205490915060ff1615610bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161078f565b505b6000610c18898989898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150c92505050565b9050610c6160cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610c9957853414610c7557610c75611b46565b600081815260ce602052604090205460ff1615610c9457610c94611b46565b610deb565b3415610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161078f565b600081815260ce602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161078f565b610df48761152f565b15610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161078f565b600081815260cb602052604090205460ff1615610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161078f565b610f6785610f58611388619c40611b1a565b67ffffffffffffffff16611584565b1580610f8d575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b156110a657600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b50506112fe565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061113788619c405a6110fa9190611b75565b8988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115a292505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156111ed57600082815260cb602052604090205460ff161561118a5761118a611b46565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26112fa565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061137990889088908790600401611b8c565b6000604051808303818588803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff1661145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161078f565b60cc5473ffffffffffffffffffffffffffffffffffffffff166114a65760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006114fb858585856115bc565b805190602001209050949350505050565b600061151c878787878787611655565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff821630148061157e575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b6060848484846040516024016115d59493929190611bd4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161167296959493929190611c1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461171657600080fd5b50565b60008083601f84011261172b57600080fd5b50813567ffffffffffffffff81111561174357600080fd5b60208301915083602082850101111561175b57600080fd5b9250929050565b803563ffffffff8116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b843561179c816116f4565b9350602085013567ffffffffffffffff8111156117b857600080fd5b6117c487828801611719565b90945092506117d7905060408601611762565b905092959194509250565b6000815180845260005b81811015611808576020818501810151868301820152016117ec565b8181111561181a576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061186060208301846117e2565b9392505050565b60006020828403121561187957600080fd5b5035919050565b60008060006040848603121561189557600080fd5b833567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611719565b90945092506118cb905060208501611762565b90509250925092565b6000602082840312156118e657600080fd5b8135611860816116f4565b600080600080600080600060c0888a03121561190c57600080fd5b87359650602088013561191e816116f4565b9550604088013561192e816116f4565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561195857600080fd5b6119648a828b01611719565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611a1260c083018486611977565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611a4f608083018688611977565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611ac357611ac3611a6d565b02949350505050565b600067ffffffffffffffff80841680611b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611b3d57611b3d611a6d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611b8757611b87611a6d565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000611bcb60608301846117e2565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611c0d60808301856117e2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611c6960c08301846117e2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"812:1752:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:53:223;;;;;;;;;;;;4507:2;4456:53;;;;;188:18:357;176:31;;;158:50;;146:2;131:18;4456:53:223;;;;;;;;4301:64;;;;;;;;;;;;4363:2;4301:64;;4146:62;;;;;;;;;;;;4206:2;4146:62;;8628:995;;;;;;:::i;:::-;;:::i;:::-;;3879:42;;;;;;;;;;;;3920:1;3879:42;;;;;1693:6:357;1681:19;;;1663:38;;1651:2;1636:18;3879:42:223;1519:188:357;4597:51:223;;;;;;;;;;;;4642:6;4597:51;;912:40:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4943:53:223:-;;;;;;;;;;;;4991:5;4943:53;;21032:82;;;;;;;;;;-1:-1:-1;21079:4:223;21032:82;;;2638:14:357;;2631:22;2613:41;;2601:2;2586:18;21032:82:223;2473:187:357;15764:250:223;;;;;;;;;;;;;:::i;:::-;;;2841:42:357;2829:55;;;2811:74;;2799:2;2784:18;15764:250:223;2665:226:357;3999:56:223;;;;;;;;;;;;4048:7;3999:56;;16317:108;;;;;;;;;;-1:-1:-1;16404:14:223;;;;16317:108;;6234:46;;;;;;;;;;-1:-1:-1;6234:46:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;5252:50;;;;;;;;;;-1:-1:-1;5252:50:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;17493:894;;;;;;;;;;-1:-1:-1;17493:894:223;;;;;:::i;:::-;;:::i;1278:175:147:-;;;;;;;;;;-1:-1:-1;1278:175:147;;;;;:::i;:::-;;:::i;10311:5066:223:-;;;;;;:::i;:::-;;:::i;6386:42::-;;;;;;;;;;-1:-1:-1;6386:42:223;;;;;;;;16746:134;;;;;;;;;;;;16847:8;;;;4855:18:195;4852:30;;16746:134:223;;;;5155:25:357;;;5143:2;5128:18;16746:134:223;5009:177:357;8628:995:223;9128:14;;9088:326;;9128:14;;9168:31;9176:8;;9186:12;9168:7;:31::i;:::-;9221:9;9291:26;9319:14;16847:8;;;;4855:18:195;4852:30;;16746:134:223;9319:14;9335:10;9347:7;9356:9;9367:12;9381:8;;9251:152;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9088:12;:326::i;:::-;9442:7;9430:72;;;9451:10;9463:8;;9473:14;16847:8;;;;4855:18:195;4852:30;;16746:134:223;9473:14;9489:12;9430:72;;;;;;;;;;:::i;:::-;;;;;;;;9517:44;;9551:9;5155:25:357;;9539:10:223;;9517:44;;5143:2:357;5128:18;9517:44:223;;;;;;;-1:-1:-1;;9598:8:223;9596:10;;;;;;;;;;;;;;;;-1:-1:-1;;8628:995:223:o;15764:250::-;15859:16;;15819:7;;15859:47;:16;:47;;15838:135;;;;;;;6954:2:357;15838:135:223;;;6936:21:357;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;7103:23;7083:18;;;7076:51;7144:19;;15838:135:223;;;;;;;;;-1:-1:-1;15991:16:223;;;;;15764:250::o;17493:894::-;17577:6;4991:5;4796:6;;4363:2;17806:49;4206:2;17806:49;;;;:::i;:::-;17805:90;;;;:::i;:::-;17703:51;4507:2;17710:8;17703:51;:::i;:::-;17639:116;;4048:7;17639:116;:::i;:::-;:257;;;;:::i;:::-;:412;;;;:::i;:::-;:587;;;;:::i;:::-;:741;;;;:::i;:::-;17595:785;17493:894;-1:-1:-1;;;;17493:894:223:o;1278:175:147:-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;;;3284:1;3268:17;3219:66;3157:201;;;;;;;8439:2:357;3157:201:27;;;8421:21:357;8478:2;8458:18;;;8451:30;8517:34;8497:18;;;8490:62;8588:16;8568:18;;;8561:44;8622:19;;3157:201:27;8237:410:357;3157:201:27;3368:12;:16;;;;;;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;1373:73:147::1;1420:23;1373:27;:73::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;8804:36:357;;3553:14:27;;8792:2:357;8777:18;3553:14:27;;;;;;;3479:99;3101:483;1278:175:147;:::o;10311:5066:223:-;5444:3:195;5440:16;;;10869:1:223;10859:11;;10851:101;;;;;;;9410:2:357;10851:101:223;;;9392:21:357;9449:2;9429:18;;;9422:30;9488:34;9468:18;;;9461:62;9559:34;9539:18;;;9532:62;9631:15;9610:19;;;9603:44;9664:19;;10851:101:223;9208:481:357;10851:101:223;11154:7;:12;;11165:1;11154:12;11150:247;;11182:15;11200:68;11233:7;11242;11251:8;;11200:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11261:6:223;;-1:-1:-1;11200:32:223;;-1:-1:-1;;11200:68:223:i;:::-;11290:27;;;;:18;:27;;;;;;11182:86;;-1:-1:-1;11290:27:223;;:36;11282:104;;;;;;;9896:2:357;11282:104:223;;;9878:21:357;9935:2;9915:18;;;9908:30;9974:34;9954:18;;;9947:62;10045:25;10025:18;;;10018:53;10088:19;;11282:104:223;9694:419:357;11282:104:223;11168:229;11150:247;11567:21;11603:90;11636:6;11644:7;11653;11662:6;11670:12;11684:8;;11603:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11603:32:223;;-1:-1:-1;;;11603:90:223:i;:::-;11567:126;;11708:19;2307:14:147;;2284:10;1685:27:237;;2307:14:147;2249:73;;;2307:14;;2249:73;;2165:164;11708:19:223;11704:506;;;11897:6;11884:9;:19;11877:27;;;;:::i;:::-;11926:29;;;;:14;:29;;;;;;;;11925:30;11918:38;;;;:::i;:::-;11704:506;;;11995:9;:14;11987:107;;;;;;;10509:2:357;11987:107:223;;;10491:21:357;10548:2;10528:18;;;10521:30;10587:34;10567:18;;;10560:62;10658:34;10638:18;;;10631:62;10730:18;10709:19;;;10702:47;10766:19;;11987:107:223;10307:484:357;11987:107:223;12117:29;;;;:14;:29;;;;;;;;12109:90;;;;;;;10998:2:357;12109:90:223;;;10980:21:357;11037:2;11017:18;;;11010:30;11076:34;11056:18;;;11049:62;11147:18;11127;;;11120:46;11183:19;;12109:90:223;10796:412:357;12109:90:223;12241:24;12257:7;12241:15;:24::i;:::-;:33;12220:135;;;;;;;11415:2:357;12220:135:223;;;11397:21:357;11454:2;11434:18;;;11427:30;11493:34;11473:18;;;11466:62;11564:34;11544:18;;;11537:62;11636:5;11615:19;;;11608:34;11659:19;;12220:135:223;11213:471:357;12220:135:223;12374:33;;;;:18;:33;;;;;;;;:42;12366:109;;;;;;;11891:2:357;12366:109:223;;;11873:21:357;11930:2;11910:18;;;11903:30;11969:34;11949:18;;;11942:62;12040:24;12020:18;;;12013:52;12082:19;;12366:109:223;11689:418:357;12366:109:223;13169:77;13188:12;13202:43;4991:5;4796:6;13202:43;:::i;:::-;13169:77;;:18;:77::i;:::-;13168:78;:145;;;-1:-1:-1;13266:16:223;;:47;:16;1338:42:192;13266:47:223;;13168:145;13151:919;;;13338:29;;;;:14;:29;;;;;;:36;;;;13370:4;13338:36;;;13393:35;13353:13;;13393:35;;;13908:41;:9;:41;13904:135;;13969:55;;;;;12314:2:357;13969:55:223;;;12296:21:357;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;12463:15;12443:18;;;12436:43;12496:19;;13969:55:223;12112:409:357;13904:135:223;14053:7;;;;13151:919;14080:16;:26;;;;;;;;;;-1:-1:-1;14131:72:223;14145:7;4796:6;14154:9;:30;;;;:::i;:::-;14186:6;14194:8;;14131:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14131:13:223;;-1:-1:-1;;;14131:72:223:i;:::-;14213:16;:46;;;;1338:42:192;14213:46:223;;;14116:87;-1:-1:-1;14270:1101:223;;;;14484:33;;;;:18;:33;;;;;;;;:42;14477:50;;;;:::i;:::-;14541:33;;;;:18;:33;;;;;;:40;;;;14577:4;14541:40;;;14600:29;14560:13;;14600:29;;;14270:1101;;;14660:29;;;;:14;:29;;;;;;:36;;;;14692:4;14660:36;;;14715:35;14675:13;;14715:35;;;15230:41;:9;:41;15226:135;;15291:55;;;;;12314:2:357;15291:55:223;;;12296:21:357;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;12463:15;12443:18;;;12436:43;12496:19;;15291:55:223;12112:409:357;15226:135:223;10537:4840;;;10311:5066;;;;;;;;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;1849:269:147:-;1966:145;;;;;312:42:199;;1966:83:147;;2058:6;;1966:145;;2080:3;;2085:9;;2096:5;;1966:145;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1849:269;;;;:::o;18503:636:223:-;4910:13:27;;;;;;;4902:69;;;;;;;13296:2:357;4902:69:27;;;13278:21:357;13335:2;13315:18;;;13308:30;13374:34;13354:18;;;13347:62;13445:13;13425:18;;;13418:41;13476:19;;4902:69:27;13094:407:357;4902:69:27;18988:16:223::1;::::0;:30:::1;:16;18984:107;;19034:16;:46:::0;;;::::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18503:636::o;3100:305:196:-;3289:7;3329:68;3365:7;3374;3383:5;3390:6;3329:35;:68::i;:::-;3319:79;;;;;;3312:86;;3100:305;;;;;;:::o;3877:375::-;4117:7;4157:87;4193:6;4201:7;4210;4219:6;4227:9;4238:5;4157:35;:87::i;:::-;4147:98;;;;;;4140:105;;3877:375;;;;;;;;:::o;2376:186:147:-;2450:4;2473:24;;;2492:4;2473:24;;:82;;-1:-1:-1;2501:54:147;;;312:42:199;2501:54:147;2473:82;2466:89;2376:186;-1:-1:-1;;2376:186:147:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;1202:536::-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;3073:336:195:-;3264:12;3370:7;3379;3388:5;3395:6;3299:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3073:336:195;;;;;;:::o;3883:516::-;4125:12;4272:6;4292:7;4313;4334:6;4354:9;4377:5;4160:232;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:516:195;;;;;;;;:::o;219:154:357:-;305:42;298:5;294:54;287:5;284:65;274:93;;363:1;360;353:12;274:93;219:154;:::o;378:347::-;429:8;439:6;493:3;486:4;478:6;474:17;470:27;460:55;;511:1;508;501:12;460:55;-1:-1:-1;534:20:357;;577:18;566:30;;563:50;;;609:1;606;599:12;563:50;646:4;638:6;634:17;622:29;;698:3;691:4;682:6;674;670:19;666:30;663:39;660:59;;;715:1;712;705:12;660:59;378:347;;;;;:::o;730:163::-;797:20;;857:10;846:22;;836:33;;826:61;;883:1;880;873:12;826:61;730:163;;;:::o;898:616::-;985:6;993;1001;1009;1062:2;1050:9;1041:7;1037:23;1033:32;1030:52;;;1078:1;1075;1068:12;1030:52;1117:9;1104:23;1136:31;1161:5;1136:31;:::i;:::-;1186:5;-1:-1:-1;1242:2:357;1227:18;;1214:32;1269:18;1258:30;;1255:50;;;1301:1;1298;1291:12;1255:50;1340:58;1390:7;1381:6;1370:9;1366:22;1340:58;:::i;:::-;1417:8;;-1:-1:-1;1314:84:357;-1:-1:-1;1471:37:357;;-1:-1:-1;1504:2:357;1489:18;;1471:37;:::i;:::-;1461:47;;898:616;;;;;;;:::o;1712:531::-;1754:3;1792:5;1786:12;1819:6;1814:3;1807:19;1844:1;1854:162;1868:6;1865:1;1862:13;1854:162;;;1930:4;1986:13;;;1982:22;;1976:29;1958:11;;;1954:20;;1947:59;1883:12;1854:162;;;2034:6;2031:1;2028:13;2025:87;;;2100:1;2093:4;2084:6;2079:3;2075:16;2071:27;2064:38;2025:87;-1:-1:-1;2157:2:357;2145:15;2162:66;2141:88;2132:98;;;;2232:4;2128:109;;1712:531;-1:-1:-1;;1712:531:357:o;2248:220::-;2397:2;2386:9;2379:21;2360:4;2417:45;2458:2;2447:9;2443:18;2435:6;2417:45;:::i;:::-;2409:53;2248:220;-1:-1:-1;;;2248:220:357:o;3158:180::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;-1:-1:-1;3309:23:357;;3158:180;-1:-1:-1;3158:180:357:o;3343:481::-;3421:6;3429;3437;3490:2;3478:9;3469:7;3465:23;3461:32;3458:52;;;3506:1;3503;3496:12;3458:52;3546:9;3533:23;3579:18;3571:6;3568:30;3565:50;;;3611:1;3608;3601:12;3565:50;3650:58;3700:7;3691:6;3680:9;3676:22;3650:58;:::i;:::-;3727:8;;-1:-1:-1;3624:84:357;-1:-1:-1;3781:37:357;;-1:-1:-1;3814:2:357;3799:18;;3781:37;:::i;:::-;3771:47;;3343:481;;;;;:::o;3829:278::-;3919:6;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4027:9;4014:23;4046:31;4071:5;4046:31;:::i;4112:892::-;4227:6;4235;4243;4251;4259;4267;4275;4328:3;4316:9;4307:7;4303:23;4299:33;4296:53;;;4345:1;4342;4335:12;4296:53;4381:9;4368:23;4358:33;;4441:2;4430:9;4426:18;4413:32;4454:31;4479:5;4454:31;:::i;:::-;4504:5;-1:-1:-1;4561:2:357;4546:18;;4533:32;4574:33;4533:32;4574:33;:::i;:::-;4626:7;-1:-1:-1;4680:2:357;4665:18;;4652:32;;-1:-1:-1;4731:3:357;4716:19;;4703:33;;-1:-1:-1;4787:3:357;4772:19;;4759:33;4815:18;4804:30;;4801:50;;;4847:1;4844;4837:12;4801:50;4886:58;4936:7;4927:6;4916:9;4912:22;4886:58;:::i;:::-;4112:892;;;;-1:-1:-1;4112:892:357;;-1:-1:-1;4112:892:357;;;;4860:84;;-1:-1:-1;;;4112:892:357:o;5191:325::-;5279:6;5274:3;5267:19;5331:6;5324:5;5317:4;5312:3;5308:14;5295:43;;5383:1;5376:4;5367:6;5362:3;5358:16;5354:27;5347:38;5249:3;5505:4;5435:66;5430:2;5422:6;5418:15;5414:88;5409:3;5405:98;5401:109;5394:116;;5191:325;;;;:::o;5521:697::-;5816:6;5805:9;5798:25;5779:4;5842:42;5932:2;5924:6;5920:15;5915:2;5904:9;5900:18;5893:43;5984:2;5976:6;5972:15;5967:2;5956:9;5952:18;5945:43;;6024:6;6019:2;6008:9;6004:18;5997:34;6080:10;6072:6;6068:23;6062:3;6051:9;6047:19;6040:52;6129:3;6123;6112:9;6108:19;6101:32;6150:62;6207:3;6196:9;6192:19;6184:6;6176;6150:62;:::i;:::-;6142:70;5521:697;-1:-1:-1;;;;;;;;;5521:697:357:o;6223:524::-;6475:42;6467:6;6463:55;6452:9;6445:74;6555:3;6550:2;6539:9;6535:18;6528:31;6426:4;6576:62;6633:3;6622:9;6618:19;6610:6;6602;6576:62;:::i;:::-;6568:70;;6674:6;6669:2;6658:9;6654:18;6647:34;6729:10;6721:6;6717:23;6712:2;6701:9;6697:18;6690:51;6223:524;;;;;;;;:::o;7174:184::-;7226:77;7223:1;7216:88;7323:4;7320:1;7313:15;7347:4;7344:1;7337:15;7363:270;7402:7;7434:18;7479:2;7476:1;7472:10;7509:2;7506:1;7502:10;7565:3;7561:2;7557:12;7552:3;7549:21;7542:3;7535:11;7528:19;7524:47;7521:73;;;7574:18;;:::i;:::-;7614:13;;7363:270;-1:-1:-1;;;;7363:270:357:o;7638:353::-;7677:1;7703:18;7748:2;7745:1;7741:10;7770:3;7760:191;;7807:77;7804:1;7797:88;7908:4;7905:1;7898:15;7936:4;7933:1;7926:15;7760:191;7969:10;;7965:20;;;;;7638:353;-1:-1:-1;;7638:353:357:o;7996:236::-;8035:3;8063:18;8108:2;8105:1;8101:10;8138:2;8135:1;8131:10;8169:3;8165:2;8161:12;8156:3;8153:21;8150:47;;;8177:18;;:::i;:::-;8213:13;;7996:236;-1:-1:-1;;;;7996:236:357:o;10118:184::-;10170:77;10167:1;10160:88;10267:4;10264:1;10257:15;10291:4;10288:1;10281:15;12526:125;12566:4;12594:1;12591;12588:8;12585:34;;;12599:18;;:::i;:::-;-1:-1:-1;12636:9:357;;12526:125::o;12656:433::-;12870:42;12862:6;12858:55;12847:9;12840:74;12962:18;12954:6;12950:31;12945:2;12934:9;12930:18;12923:59;13018:2;13013;13002:9;12998:18;12991:30;12821:4;13038:45;13079:2;13068:9;13064:18;13056:6;13038:45;:::i;:::-;13030:53;12656:433;-1:-1:-1;;;;;12656:433:357:o;13506:512::-;13700:4;13729:42;13810:2;13802:6;13798:15;13787:9;13780:34;13862:2;13854:6;13850:15;13845:2;13834:9;13830:18;13823:43;;13902:3;13897:2;13886:9;13882:18;13875:31;13923:46;13964:3;13953:9;13949:19;13941:6;13923:46;:::i;:::-;13915:54;;14005:6;14000:2;13989:9;13985:18;13978:34;13506:512;;;;;;;:::o;14023:656::-;14310:6;14299:9;14292:25;14273:4;14336:42;14426:2;14418:6;14414:15;14409:2;14398:9;14394:18;14387:43;14478:2;14470:6;14466:15;14461:2;14450:9;14446:18;14439:43;;14518:6;14513:2;14502:9;14498:18;14491:34;14562:6;14556:3;14545:9;14541:19;14534:35;14606:3;14600;14589:9;14585:19;14578:32;14627:46;14668:3;14657:9;14653:19;14645:6;14627:46;:::i;:::-;14619:54;14023:656;-1:-1:-1;;;;;;;;14023:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","MIN_GAS_CALLDATA_OVERHEAD()":"028f85f7","MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":"0c568498","MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":"2828d7e8","OTHER_MESSENGER()":"9fce812c","RELAY_CALL_OVERHEAD()":"4c1d6a69","RELAY_CONSTANT_OVERHEAD()":"83a74074","RELAY_GAS_CHECK_BUFFER()":"5644cfdf","RELAY_RESERVED_GAS()":"8cbeeef2","baseGas(bytes,uint32)":"b28ade25","failedMessages(bytes32)":"a4e7f8bd","initialize(address)":"c4d66de8","l1CrossDomainMessenger()":"a7119869","messageNonce()":"ecc70428","otherMessenger()":"db505d80","paused()":"5c975abb","relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","sendMessage(address,bytes,uint32)":"3dbb202b","successfulMessages(bytes32)":"b1b1b209","version()":"54fd4d50","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SentMessageExtension1\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_CALLDATA_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CALL_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CONSTANT_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_GAS_CHECK_BUFFER\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_RESERVED_GAS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"baseGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"_l1CrossDomainMessenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1CrossDomainMessenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherMessenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"successfulMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000007\",\"kind\":\"dev\",\"methods\":{\"OTHER_MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"CrossDomainMessenger contract on the other chain.\"}},\"baseGas(bytes,uint32)\":{\"params\":{\"_message\":\"Message to compute the amount of required gas for.\",\"_minGasLimit\":\"Minimum desired gas limit when message goes to target.\"},\"returns\":{\"_0\":\"Amount of gas required to guarantee message receipt.\"}},\"initialize(address)\":{\"params\":{\"_l1CrossDomainMessenger\":\"L1CrossDomainMessenger contract on the other network.\"}},\"l1CrossDomainMessenger()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"L1CrossDomainMessenger contract.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"params\":{\"_message\":\"Message to send to the target.\",\"_minGasLimit\":\"Minimum amount of gas that the message can be executed with.\",\"_nonce\":\"Nonce of the message being relayed.\",\"_sender\":\"Address of the user who sent the message.\",\"_target\":\"Address that the message is targeted at.\",\"_value\":\"ETH value to send with the message.\"}},\"sendMessage(address,bytes,uint32)\":{\"params\":{\"_message\":\"Message to trigger the target address with.\",\"_minGasLimit\":\"Minimum gas limit that the message can be executed with.\",\"_target\":\"Target contract or wallet address.\"}},\"xDomainMessageSender()\":{\"returns\":{\"_0\":\"Address of the sender of the currently executing message on the other chain.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"2.0.0\"}},\"title\":\"L2CrossDomainMessenger\",\"version\":1},\"userdoc\":{\"events\":{\"FailedRelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message fails to be relayed on this chain.\"},\"RelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message is successfully relayed on this chain.\"},\"SentMessage(address,address,bytes,uint256,uint256)\":{\"notice\":\"Emitted whenever a message is sent to the other chain.\"},\"SentMessageExtension1(address,uint256)\":{\"notice\":\"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough.\"}},\"kind\":\"user\",\"methods\":{\"MESSAGE_VERSION()\":{\"notice\":\"Current message version identifier.\"},\"MIN_GAS_CALLDATA_OVERHEAD()\":{\"notice\":\"Extra gas added to base gas for each byte of calldata in a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()\":{\"notice\":\"Denominator for dynamic overhead added to the base gas for a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()\":{\"notice\":\"Numerator for dynamic overhead added to the base gas for a message.\"},\"OTHER_MESSENGER()\":{\"notice\":\"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\"},\"RELAY_CALL_OVERHEAD()\":{\"notice\":\"Gas reserved for performing the external call in `relayMessage`.\"},\"RELAY_CONSTANT_OVERHEAD()\":{\"notice\":\"Constant overhead added to the base gas for a message.\"},\"RELAY_GAS_CHECK_BUFFER()\":{\"notice\":\"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`.\"},\"RELAY_RESERVED_GAS()\":{\"notice\":\"Gas reserved for finalizing the execution of `relayMessage` after the safe call.\"},\"baseGas(bytes,uint32)\":{\"notice\":\"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely.\"},\"constructor\":{\"notice\":\"Constructs the L2CrossDomainMessenger contract.\"},\"failedMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt.\"},\"initialize(address)\":{\"notice\":\"Initializer.\"},\"l1CrossDomainMessenger()\":{\"notice\":\"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\"},\"otherMessenger()\":{\"notice\":\"CrossDomainMessenger contract on the other chain.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\"},\"sendMessage(address,bytes,uint32)\":{\"notice\":\"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\"},\"successfulMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.\"},\"xDomainMessageSender()\":{\"notice\":\"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it.\"}},\"notice\":\"The L2CrossDomainMessenger is a high-level interface for message passing between L1 and L2 on the L2 side. Users are generally encouraged to use this contract instead of lower level message passing contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2CrossDomainMessenger.sol\":\"L2CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"uint256","name":"messageNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false}],"type":"event","name":"SentMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SentMessageExtension1","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CALL_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CONSTANT_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_GAS_CHECK_BUFFER","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_RESERVED_GAS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"pure","type":"function","name":"baseGas","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract CrossDomainMessenger","name":"_l1CrossDomainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1CrossDomainMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"OTHER_MESSENGER()":{"custom:legacy":"","returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address)":{"params":{"_l1CrossDomainMessenger":"L1CrossDomainMessenger contract on the other network."}},"l1CrossDomainMessenger()":{"custom:legacy":"","returns":{"_0":"L1CrossDomainMessenger contract."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L2CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address)":{"notice":"Initializer."},"l1CrossDomainMessenger()":{"notice":"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2CrossDomainMessenger.sol":"L2CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":108324,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_0_0_20","offset":0,"slot":"0","type":"t_address"},{"astId":46970,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":108331,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_1_0_1600","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":108334,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_51_0_20","offset":0,"slot":"51","type":"t_address"},{"astId":108339,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_52_0_1568","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":108342,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_101_0_1","offset":0,"slot":"101","type":"t_bool"},{"astId":108347,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_102_0_1568","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":108350,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_151_0_32","offset":0,"slot":"151","type":"t_uint256"},{"astId":108355,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_152_0_1568","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":108360,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_201_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108365,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_202_0_32","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108410,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108413,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"xDomainMsgSender","offset":0,"slot":"204","type":"t_address"},{"astId":108416,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"205","type":"t_uint240"},{"astId":108421,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"failedMessages","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108425,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"otherMessenger","offset":0,"slot":"207","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108430,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"__gap","offset":0,"slot":"208","type":"t_array(t_uint256)43_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)43_storage":{"encoding":"inplace","label":"uint256[43]","numberOfBytes":"1376","base":"t_uint256"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L2CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address)":{"notice":"Initializer."},"l1CrossDomainMessenger()":{"notice":"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."},"SentMessage(address,address,bytes,uint256,uint256)":{"notice":"Emitted whenever a message is sent to the other chain."},"SentMessageExtension1(address,uint256)":{"notice":"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough."}},"notice":"The L2CrossDomainMessenger is a high-level interface for message passing between L1 and L2 on the L2 side. Users are generally encouraged to use this contract instead of lower level message passing contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"OTHER_MESSENGER()":{"returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address)":{"params":{"_l1CrossDomainMessenger":"L1CrossDomainMessenger contract on the other network."}},"l1CrossDomainMessenger()":{"returns":{"_0":"L1CrossDomainMessenger contract."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"title":"L2CrossDomainMessenger"},"ast":{"absolutePath":"src/L2/L2CrossDomainMessenger.sol","id":90489,"exportedSymbols":{"AddressAliasHelper":[111913],"Constants":[103096],"CrossDomainMessenger":[108888],"ISemver":[109417],"L2CrossDomainMessenger":[90488],"L2ToL1MessagePasser":[91307],"Predeploys":[104124]},"nodeType":"SourceUnit","src":"32:2533:147","nodes":[{"id":90353,"nodeType":"PragmaDirective","src":"32:23:147","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90355,"nodeType":"ImportDirective","src":"57:71:147","nodes":[],"absolutePath":"src/vendor/AddressAliasHelper.sol","file":"src/vendor/AddressAliasHelper.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":111914,"symbolAliases":[{"foreign":{"id":90354,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"66:18:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90357,"nodeType":"ImportDirective","src":"129:58:147","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":90356,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"138:10:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90359,"nodeType":"ImportDirective","src":"188:78:147","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":90358,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"197:20:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90361,"nodeType":"ImportDirective","src":"267:52:147","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90360,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"276:7:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90363,"nodeType":"ImportDirective","src":"320:69:147","nodes":[],"absolutePath":"src/L2/L2ToL1MessagePasser.sol","file":"src/L2/L2ToL1MessagePasser.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":91308,"symbolAliases":[{"foreign":{"id":90362,"name":"L2ToL1MessagePasser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91307,"src":"329:19:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90365,"nodeType":"ImportDirective","src":"390:56:147","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":90364,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"399:9:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90488,"nodeType":"ContractDefinition","src":"812:1752:147","nodes":[{"id":90374,"nodeType":"VariableDeclaration","src":"912:40:147","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90371,"nodeType":"StructuredDocumentation","src":"883:24:147","text":"@custom:semver 2.0.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"935:7:147","scope":90488,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90372,"name":"string","nodeType":"ElementaryTypeName","src":"912:6:147","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e302e30","id":90373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"945:7:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4bcb154e38601c389396fa918314da42d4626f13ef6d0ceb07e5f5d26b2fbc3","typeString":"literal_string \"2.0.0\""},"value":"2.0.0"},"visibility":"public"},{"id":90390,"nodeType":"FunctionDefinition","src":"1023:127:147","nodes":[],"body":{"id":90389,"nodeType":"Block","src":"1060:90:147","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":90384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:147","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1129:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90382,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:147","typeDescriptions":{}}},"id":90385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1129:10:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90381,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1108:20:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":90386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1108:32:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90380,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90404,"src":"1070:10:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":90387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l1CrossDomainMessenger"],"nodeType":"FunctionCall","src":"1070:73:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90388,"nodeType":"ExpressionStatement","src":"1070:73:147"}]},"documentation":{"id":90375,"nodeType":"StructuredDocumentation","src":"959:59:147","text":"@notice Constructs the L2CrossDomainMessenger contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":90378,"kind":"baseConstructorSpecifier","modifierName":{"id":90377,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1037:20:147"},"nodeType":"ModifierInvocation","src":"1037:22:147"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":90376,"nodeType":"ParameterList","parameters":[],"src":"1034:2:147"},"returnParameters":{"id":90379,"nodeType":"ParameterList","parameters":[],"src":"1060:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90404,"nodeType":"FunctionDefinition","src":"1278:175:147","nodes":[],"body":{"id":90403,"nodeType":"Block","src":"1363:90:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":90400,"name":"_l1CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90394,"src":"1420:23:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90399,"name":"__CrossDomainMessenger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108852,"src":"1373:27:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":90401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherMessenger"],"nodeType":"FunctionCall","src":"1373:73:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90402,"nodeType":"ExpressionStatement","src":"1373:73:147"}]},"documentation":{"id":90391,"nodeType":"StructuredDocumentation","src":"1156:117:147","text":"@notice Initializer.\n @param _l1CrossDomainMessenger L1CrossDomainMessenger contract on the other network."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":90397,"kind":"modifierInvocation","modifierName":{"id":90396,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"1351:11:147"},"nodeType":"ModifierInvocation","src":"1351:11:147"}],"name":"initialize","nameLocation":"1287:10:147","parameters":{"id":90395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90394,"mutability":"mutable","name":"_l1CrossDomainMessenger","nameLocation":"1319:23:147","nodeType":"VariableDeclaration","scope":90404,"src":"1298:44:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":90393,"nodeType":"UserDefinedTypeName","pathNode":{"id":90392,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1298:20:147"},"referencedDeclaration":108888,"src":"1298:20:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"1297:46:147"},"returnParameters":{"id":90398,"nodeType":"ParameterList","parameters":[],"src":"1363:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90414,"nodeType":"FunctionDefinition","src":"1687:115:147","nodes":[],"body":{"id":90413,"nodeType":"Block","src":"1764:38:147","nodes":[],"statements":[{"expression":{"id":90411,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"1781:14:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"functionReturnParameters":90410,"id":90412,"nodeType":"Return","src":"1774:21:147"}]},"documentation":{"id":90405,"nodeType":"StructuredDocumentation","src":"1459:223:147","text":"@notice Getter for the remote messenger.\n Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\n @return L1CrossDomainMessenger contract.\n @custom:legacy"},"functionSelector":"a7119869","implemented":true,"kind":"function","modifiers":[],"name":"l1CrossDomainMessenger","nameLocation":"1696:22:147","parameters":{"id":90406,"nodeType":"ParameterList","parameters":[],"src":"1718:2:147"},"returnParameters":{"id":90410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90414,"src":"1742:20:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":90408,"nodeType":"UserDefinedTypeName","pathNode":{"id":90407,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1742:20:147"},"referencedDeclaration":108888,"src":"1742:20:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"1741:22:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90443,"nodeType":"FunctionDefinition","src":"1849:269:147","nodes":[],"body":{"id":90442,"nodeType":"Block","src":"1956:162:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":90437,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90417,"src":"2080:3:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90438,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90419,"src":"2085:9:147","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":90439,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90423,"src":"2096:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[{"expression":{"id":90430,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1994:10:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_TO_L1_MESSAGE_PASSER","nodeType":"MemberAccess","referencedDeclaration":104000,"src":"1994:34:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1986:8:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":90428,"name":"address","nodeType":"ElementaryTypeName","src":"1986:8:147","stateMutability":"payable","typeDescriptions":{}}},"id":90432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1986:43:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90427,"name":"L2ToL1MessagePasser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91307,"src":"1966:19:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2ToL1MessagePasser_$91307_$","typeString":"type(contract L2ToL1MessagePasser)"}},"id":90433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:64:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}},"id":90434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initiateWithdrawal","nodeType":"MemberAccess","referencedDeclaration":91293,"src":"1966:83:147","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) payable external"}},"id":90436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":90435,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90421,"src":"2058:6:147","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1966:100:147","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,uint256,bytes memory) payable external"}},"id":90440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:145:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90441,"nodeType":"ExpressionStatement","src":"1966:145:147"}]},"baseFunctions":[108864],"documentation":{"id":90415,"nodeType":"StructuredDocumentation","src":"1808:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"1858:12:147","overrides":{"id":90425,"nodeType":"OverrideSpecifier","overrides":[],"src":"1947:8:147"},"parameters":{"id":90424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90417,"mutability":"mutable","name":"_to","nameLocation":"1879:3:147","nodeType":"VariableDeclaration","scope":90443,"src":"1871:11:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90416,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:147","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90419,"mutability":"mutable","name":"_gasLimit","nameLocation":"1891:9:147","nodeType":"VariableDeclaration","scope":90443,"src":"1884:16:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90418,"name":"uint64","nodeType":"ElementaryTypeName","src":"1884:6:147","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90421,"mutability":"mutable","name":"_value","nameLocation":"1910:6:147","nodeType":"VariableDeclaration","scope":90443,"src":"1902:14:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:147","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90423,"mutability":"mutable","name":"_data","nameLocation":"1931:5:147","nodeType":"VariableDeclaration","scope":90443,"src":"1918:18:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90422,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1870:67:147"},"returnParameters":{"id":90426,"nodeType":"ParameterList","parameters":[],"src":"1956:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":90462,"nodeType":"FunctionDefinition","src":"2165:164:147","nodes":[],"body":{"id":90461,"nodeType":"Block","src":"2232:97:147","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":90452,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2284:3:147","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2284:10:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":90450,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"2249:18:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressAliasHelper_$111913_$","typeString":"type(library AddressAliasHelper)"}},"id":90451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"undoL1ToL2Alias","nodeType":"MemberAccess","referencedDeclaration":111912,"src":"2249:34:147","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_address_$","typeString":"function (address) pure returns (address)"}},"id":90454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:46:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90457,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"2307:14:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2299:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90455,"name":"address","nodeType":"ElementaryTypeName","src":"2299:7:147","typeDescriptions":{}}},"id":90458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2299:23:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2249:73:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":90449,"id":90460,"nodeType":"Return","src":"2242:80:147"}]},"baseFunctions":[108870],"documentation":{"id":90444,"nodeType":"StructuredDocumentation","src":"2124:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"2174:17:147","overrides":{"id":90446,"nodeType":"OverrideSpecifier","overrides":[],"src":"2208:8:147"},"parameters":{"id":90445,"nodeType":"ParameterList","parameters":[],"src":"2191:2:147"},"returnParameters":{"id":90449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90462,"src":"2226:4:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90447,"name":"bool","nodeType":"ElementaryTypeName","src":"2226:4:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2225:6:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90487,"nodeType":"FunctionDefinition","src":"2376:186:147","nodes":[],"body":{"id":90486,"nodeType":"Block","src":"2456:106:147","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":90484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90471,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90465,"src":"2473:7:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90474,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2492:4:147","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$90488","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$90488","typeString":"contract L2CrossDomainMessenger"}],"id":90473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2484:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90472,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:147","typeDescriptions":{}}},"id":90475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2484:13:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2473:24:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90477,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90465,"src":"2501:7:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":90480,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2520:10:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_TO_L1_MESSAGE_PASSER","nodeType":"MemberAccess","referencedDeclaration":104000,"src":"2520:34:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90478,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:147","typeDescriptions":{}}},"id":90482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:43:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2501:54:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2473:82:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":90470,"id":90485,"nodeType":"Return","src":"2466:89:147"}]},"baseFunctions":[108878],"documentation":{"id":90463,"nodeType":"StructuredDocumentation","src":"2335:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"2385:15:147","overrides":{"id":90467,"nodeType":"OverrideSpecifier","overrides":[],"src":"2432:8:147"},"parameters":{"id":90466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90465,"mutability":"mutable","name":"_target","nameLocation":"2409:7:147","nodeType":"VariableDeclaration","scope":90487,"src":"2401:15:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90464,"name":"address","nodeType":"ElementaryTypeName","src":"2401:7:147","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2400:17:147"},"returnParameters":{"id":90470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90487,"src":"2450:4:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90468,"name":"bool","nodeType":"ElementaryTypeName","src":"2450:4:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2449:6:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":90367,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"847:20:147"},"id":90368,"nodeType":"InheritanceSpecifier","src":"847:20:147"},{"baseName":{"id":90369,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"869:7:147"},"id":90370,"nodeType":"InheritanceSpecifier","src":"869:7:147"}],"canonicalName":"L2CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":90366,"nodeType":"StructuredDocumentation","src":"448:364:147","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000007\n @title L2CrossDomainMessenger\n @notice The L2CrossDomainMessenger is a high-level interface for message passing between L1 and\n L2 on the L2 side. Users are generally encouraged to use this contract instead of lower\n level message passing contracts."},"fullyImplemented":true,"linearizedBaseContracts":[90488,109417,108888,108366,47114,108325],"name":"L2CrossDomainMessenger","nameLocation":"821:22:147","scope":90489,"usedErrors":[]}],"license":"MIT"},"id":147} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L2ERC721Bridge.json b/packages/sdk/src/forge-artifacts/L2ERC721Bridge.json new file mode 100644 index 000000000000..4ec47e1d9f16 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L2ERC721Bridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_l1ERC721Bridge","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000217565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016d60201b62000a3e1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b62000122734200000000000000000000000000000000000007836200017c565b801562000169576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b61160c80620002276000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b9550604088013561146981611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:148:-:0;;;1576:98;;;;;;;;;-1:-1:-1;1615:52:148::1;1661:1;1615:10;:52::i;:::-;1389:4507:::0;;1813:263;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;1895:174:148::1;480:42:199;2042:15:148::0;1895:19:::1;:174::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;1813:263:148;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;3212:9:224::1;:22:::0;;-1:-1:-1;;;;;3212:22:224;;::::1;-1:-1:-1::0;;;;;;3212:22:224;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;628:407:357:-;1389:4507:148;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b9550604088013561146981611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:148:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5688:971:224;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;;;;1732:42:357;1720:55;;;1702:74;;1690:2;1675:18;829:37:224;;;;;;;;1473:40:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4239:82:224:-;;;4286:4;2688:41:357;;2676:2;2661:18;4239:82:224;2548:187:357;2843:1275:148;;;;;;:::i;:::-;;:::i;3858:98:224:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;1813:263:148:-;;;;;;:::i;:::-;;:::i;967:33:224:-;;;;;;;;;5688:971;6472:10;1465:19:59;:23;6444:89:224;;;;;;;5483:2:357;6444:89:224;;;5465:21:357;5522:2;5502:18;;;5495:30;5561:34;5541:18;;;5534:62;5632:15;5612:18;;;5605:43;5665:19;;6444:89:224;;;;;;;;;6544:108;6566:11;6579:12;6593:10;6605;6617:8;6627:12;6641:10;;6544:21;:108::i;:::-;5688:971;;;;;;:::o;2843:1275:148:-;2669:9:224;;;;2647:10;:32;:92;;;;-1:-1:-1;2727:11:224;;;2683:9;:32;;;;;;;;2727:11;;;;;2683:9;;;;:30;;:32;;;;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;2647:92;2626:202;;;;;;;6153:2:357;2626:202:224;;;6135:21:357;6192:2;6172:18;;;6165:30;6231:34;6211:18;;;6204:62;6302:33;6282:18;;;6275:61;6353:19;;2626:202:224;5951:427:357;2626:202:224;3129:4:148::1;3106:28;::::0;::::1;::::0;3098:83:::1;;;::::0;::::1;::::0;;6585:2:357;3098:83:148::1;::::0;::::1;6567:21:357::0;6624:2;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6734:12;6714:18;;;6707:40;6764:19;;3098:83:148::1;6383:406:357::0;3098:83:148::1;3331:87;3363:11;3376:41;3331:31;:87::i;:::-;3310:188;;;::::0;::::1;::::0;;6996:2:357;3310:188:148::1;::::0;::::1;6978:21:357::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;7145:24;7125:18;;;7118:52;7187:19;;3310:188:148::1;6794:418:357::0;3310:188:148::1;3570:11;3546:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3530:66;;:12;:66;;;3509:188;;;::::0;::::1;::::0;;7419:2:357;3509:188:148::1;::::0;::::1;7401:21:357::0;7458:2;7438:18;;;7431:30;7497:34;7477:18;;;7470:62;7568:34;7548:18;;;7541:62;7640:13;7619:19;;;7612:42;7671:19;;3509:188:148::1;7217:479:357::0;3509:188:148::1;3898:60;::::0;;;;:45:::1;7893:55:357::0;;;3898:60:148::1;::::0;::::1;7875:74:357::0;7965:18;;;7958:34;;;3898:45:148;::::1;::::0;::::1;::::0;7848:18:357;;3898:60:148::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4078:5;4029:82;;4064:12;4029:82;;4051:11;4029:82;;;4085:3;4090:8;4100:10;;4029:82;;;;;;;;;:::i;:::-;;;;;;;;2843:1275:::0;;;;;;;:::o;7885:428:224:-;8124:17;;;8116:78;;;;;;;8975:2:357;8116:78:224;;;8957:21:357;9014:2;8994:18;;;8987:30;9053:34;9033:18;;;9026:62;9124:18;9104;;;9097:46;9160:19;;8116:78:224;8773:412:357;8116:78:224;8205:101;8227:11;8240:12;8254:10;8266:3;8271:8;8281:12;8295:10;;8205:21;:101::i;:::-;7885:428;;;;;;;:::o;1813:263:148:-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;9392:2:357;3146:190:43;;;9374:21:357;9431:2;9411:18;;;9404:30;9470:34;9450:18;;;9443:62;9541:16;9521:18;;;9514:44;9575:19;;3146:190:43;9190:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1895:174:148::1;480:42:199;2042:15:148;1895:19;:174::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;9757:36:357;;3531:14:43;;9745:2:357;9730:18;3531:14:43;;;;;;;3457:99;3090:472;1813:263:148;:::o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;4157:1737:148:-;4443:26;;;4435:88;;;;;;;10006:2:357;4435:88:148;;;9988:21:357;10045:2;10025:18;;;10018:30;10084:34;10064:18;;;10057:62;10155:19;10135:18;;;10128:47;10192:19;;4435:88:148;9804:413:357;4435:88:148;4637:54;;;;;;;;10368:25:357;;;4637:44:148;;;;;;10341:18:357;;4637:54:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4628:63;;:5;:63;;;4607:172;;;;;;;10606:2:357;4607:172:148;;;10588:21:357;10645:2;10625:18;;;10618:30;10684:34;10664:18;;;10657:62;10755:32;10735:18;;;10728:60;10805:19;;4607:172:148;10404:426:357;4607:172:148;4930:19;4976:11;4952:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4930:72;;5035:12;5020:27;;:11;:27;;;5012:95;;;;;;;11037:2:357;5012:95:148;;;11019:21:357;11076:2;11056:18;;;11049:30;11115:34;11095:18;;;11088:62;11186:25;11166:18;;;11159:53;11229:19;;5012:95:148;10835:419:357;5012:95:148;5287:58;;;;;:41;7893:55:357;;;5287:58:148;;;7875:74:357;7965:18;;;7958:34;;;5287:41:148;;;;;7848:18:357;;5287:58:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5356:20;5415:44;;;5461:11;5474;5487:5;5494:3;5499:8;5509:10;;5379:150;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5632:9;;5673:11;;5632:103;;;;;5379:150;;-1:-1:-1;5632:9:148;;;;;:21;;:103;;5673:11;;;;;5379:150;;5720:12;;5632:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:5;5806:81;;5841:11;5806:81;;5828:11;5806:81;;;5861:3;5866:8;5876:10;;5806:81;;;;;;;;;:::i;:::-;;;;;;;;4425:1469;;4157:1737;;;;;;;;:::o;1333:274:67:-;1420:4;1527:23;1542:7;1527:14;:23::i;:::-;:73;;;;;1554:46;1579:7;1588:11;1554:24;:46::i;:::-;1520:80;1333:274;-1:-1:-1;;;1333:274:67:o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;;;;12595:2:357;4880:69:43;;;12577:21:357;12634:2;12614:18;;;12607:30;12673:34;12653:18;;;12646:62;12744:13;12724:18;;;12717:41;12775:19;;4880:69:43;12393:407:357;4880:69:43;3212:9:224::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;704:411:67:-;768:4;975:60;1000:7;1009:25;975:24;:60::i;:::-;:133;;;;-1:-1:-1;1052:56:67;1077:7;1086:21;1052:24;:56::i;:::-;1051:57;975:133;956:152;704:411;-1:-1:-1;;704:411:67:o;4223:638::-;4385:71;;;12979:66:357;12967:79;;4385:71:67;;;;12949:98:357;;;;4385:71:67;;;;;;;;;;12922:18:357;;;;4385:71:67;;;;;;;;;;;4408:34;4385:71;;;4664:20;;4316:4;;4385:71;4316:4;;;;;;4385:71;4316:4;;4664:20;4629:7;4622:5;4611:86;4600:97;;4724:16;4710:30;;4774:4;4768:11;4753:26;;4806:7;:29;;;;;4831:4;4817:10;:18;;4806:29;:48;;;;;4853:1;4839:11;:15;4806:48;4799:55;4223:638;-1:-1:-1;;;;;;;4223:638:67:o;14:154:357:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:163::-;240:20;;300:10;289:22;;279:33;;269:61;;326:1;323;316:12;269:61;173:163;;;:::o;341:347::-;392:8;402:6;456:3;449:4;441:6;437:17;433:27;423:55;;474:1;471;464:12;423:55;-1:-1:-1;497:20:357;;540:18;529:30;;526:50;;;572:1;569;562:12;526:50;609:4;601:6;597:17;585:29;;661:3;654:4;645:6;637;633:19;629:30;626:39;623:59;;;678:1;675;668:12;623:59;341:347;;;;;:::o;693:827::-;798:6;806;814;822;830;838;891:3;879:9;870:7;866:23;862:33;859:53;;;908:1;905;898:12;859:53;947:9;934:23;966:31;991:5;966:31;:::i;:::-;1016:5;-1:-1:-1;1073:2:357;1058:18;;1045:32;1086:33;1045:32;1086:33;:::i;:::-;1138:7;-1:-1:-1;1192:2:357;1177:18;;1164:32;;-1:-1:-1;1215:37:357;1248:2;1233:18;;1215:37;:::i;:::-;1205:47;;1303:3;1292:9;1288:19;1275:33;1331:18;1323:6;1320:30;1317:50;;;1363:1;1360;1353:12;1317:50;1402:58;1452:7;1443:6;1432:9;1428:22;1402:58;:::i;:::-;693:827;;;;-1:-1:-1;693:827:357;;-1:-1:-1;693:827:357;;1479:8;;693:827;-1:-1:-1;;;693:827:357:o;1787:531::-;1829:3;1867:5;1861:12;1894:6;1889:3;1882:19;1919:1;1929:162;1943:6;1940:1;1937:13;1929:162;;;2005:4;2061:13;;;2057:22;;2051:29;2033:11;;;2029:20;;2022:59;1958:12;1929:162;;;2109:6;2106:1;2103:13;2100:87;;;2175:1;2168:4;2159:6;2154:3;2150:16;2146:27;2139:38;2100:87;-1:-1:-1;2232:2:357;2220:15;2237:66;2216:88;2207:98;;;;2307:4;2203:109;;1787:531;-1:-1:-1;;1787:531:357:o;2323:220::-;2472:2;2461:9;2454:21;2435:4;2492:45;2533:2;2522:9;2518:18;2510:6;2492:45;:::i;2740:1038::-;2855:6;2863;2871;2879;2887;2895;2903;2956:3;2944:9;2935:7;2931:23;2927:33;2924:53;;;2973:1;2970;2963:12;2924:53;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:357;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;-1:-1:-1;3262:2:357;3247:18;;3234:32;3275:33;3234:32;3275:33;:::i;:::-;3327:7;-1:-1:-1;3386:2:357;3371:18;;3358:32;3399:33;3358:32;3399:33;:::i;:::-;3451:7;-1:-1:-1;3505:3:357;3490:19;;3477:33;;-1:-1:-1;3561:3:357;3546:19;;3533:33;3589:18;3578:30;;3575:50;;;3621:1;3618;3611:12;3575:50;3660:58;3710:7;3701:6;3690:9;3686:22;3660:58;:::i;:::-;2740:1038;;;;-1:-1:-1;2740:1038:357;;-1:-1:-1;2740:1038:357;;;;3634:84;;-1:-1:-1;;;2740:1038:357:o;4047:969::-;4161:6;4169;4177;4185;4193;4201;4209;4262:3;4250:9;4241:7;4237:23;4233:33;4230:53;;;4279:1;4276;4269:12;4230:53;4318:9;4305:23;4337:31;4362:5;4337:31;:::i;:::-;4387:5;-1:-1:-1;4444:2:357;4429:18;;4416:32;4457:33;4416:32;4457:33;:::i;:::-;4509:7;-1:-1:-1;4568:2:357;4553:18;;4540:32;4581:33;4540:32;4581:33;:::i;:::-;4633:7;-1:-1:-1;4687:2:357;4672:18;;4659:32;;-1:-1:-1;4710:38:357;4743:3;4728:19;;4710:38;:::i;:::-;4700:48;;4799:3;4788:9;4784:19;4771:33;4827:18;4819:6;4816:30;4813:50;;;4859:1;4856;4849:12;5021:255;5088:6;5141:2;5129:9;5120:7;5116:23;5112:32;5109:52;;;5157:1;5154;5147:12;5109:52;5196:9;5183:23;5215:31;5240:5;5215:31;:::i;5695:251::-;5765:6;5818:2;5806:9;5797:7;5793:23;5789:32;5786:52;;;5834:1;5831;5824:12;5786:52;5866:9;5860:16;5885:31;5910:5;5885:31;:::i;8003:325::-;8091:6;8086:3;8079:19;8143:6;8136:5;8129:4;8124:3;8120:14;8107:43;;8195:1;8188:4;8179:6;8174:3;8170:16;8166:27;8159:38;8061:3;8317:4;8247:66;8242:2;8234:6;8230:15;8226:88;8221:3;8217:98;8213:109;8206:116;;8003:325;;;;:::o;8333:435::-;8558:42;8550:6;8546:55;8535:9;8528:74;8638:6;8633:2;8622:9;8618:18;8611:34;8681:2;8676;8665:9;8661:18;8654:30;8509:4;8701:61;8758:2;8747:9;8743:18;8735:6;8727;8701:61;:::i;:::-;8693:69;8333:435;-1:-1:-1;;;;;;8333:435:357:o;11259:700::-;11519:4;11548:42;11629:2;11621:6;11617:15;11606:9;11599:34;11681:2;11673:6;11669:15;11664:2;11653:9;11649:18;11642:43;11733:2;11725:6;11721:15;11716:2;11705:9;11701:18;11694:43;11785:2;11777:6;11773:15;11768:2;11757:9;11753:18;11746:43;;11826:6;11820:3;11809:9;11805:19;11798:35;11870:3;11864;11853:9;11849:19;11842:32;11891:62;11948:3;11937:9;11933:19;11925:6;11917;11891:62;:::i;:::-;11883:70;11259:700;-1:-1:-1;;;;;;;;;11259:700:357:o;11964:424::-;12177:42;12169:6;12165:55;12154:9;12147:74;12257:2;12252;12241:9;12237:18;12230:30;12128:4;12277:45;12318:2;12307:9;12303:18;12295:6;12277:45;:::i;:::-;12269:53;;12370:10;12362:6;12358:23;12353:2;12342:9;12338:18;12331:51;11964:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address)":"c4d66de8","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_l1ERC721Bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Messenger contract on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_to\":\"Address to receive the token on the other domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_from\":\"Address that triggered the bridge on the other domain.\",\"_localToken\":\"Address of the ERC721 token on this domain.\",\"_remoteToken\":\"Address of the ERC721 token on the other domain.\",\"_to\":\"Address to receive the token on this domain.\",\"_tokenId\":\"ID of the token being deposited.\"}},\"initialize(address)\":{\"params\":{\"_l1ERC721Bridge\":\"Address of the ERC721 bridge contract on the other network.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.7.0\"}},\"title\":\"L2ERC721Bridge\",\"version\":1},\"userdoc\":{\"events\":{\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge from the other network is finalized.\"},\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge to the other network is initiated.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\"},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\"},\"constructor\":{\"notice\":\"Constructs the L2ERC721Bridge contract.\"},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"notice\":\"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Contract of the bridge on the other network.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"}},\"notice\":\"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge. This contract also acts as a burner for tokens being withdrawn. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2ERC721Bridge.sol\":\"L2ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1ERC721Bridge.sol\":{\"keccak256\":\"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db\",\"dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L2/L2ERC721Bridge.sol\":{\"keccak256\":\"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f\",\"dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/ERC721Bridge.sol\":{\"keccak256\":\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\",\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\",\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[{"internalType":"address payable","name":"_l1ERC721Bridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ERC721Bridge.sol":"L2ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1ERC721Bridge.sol":{"keccak256":"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd","urls":["bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db","dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L2/L2ERC721Bridge.sol":{"keccak256":"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9","urls":["bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f","dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":108906,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":108910,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108914,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)111675"},{"astId":108919,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"}],"types":{"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}},"notice":"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge. This contract also acts as a burner for tokens being withdrawn. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L2ERC721Bridge"},"ast":{"absolutePath":"src/L2/L2ERC721Bridge.sol","id":90724,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ERC165Checker":[54434],"ERC721Bridge":[109118],"IOptimismMintableERC721":[109407],"ISemver":[109417],"L1ERC721Bridge":[85418],"L2ERC721Bridge":[90723],"Predeploys":[104124],"StandardBridge":[111675]},"nodeType":"SourceUnit","src":"32:5865:148","nodes":[{"id":90490,"nodeType":"PragmaDirective","src":"32:23:148","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90492,"nodeType":"ImportDirective","src":"57:62:148","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109119,"symbolAliases":[{"foreign":{"id":90491,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109118,"src":"66:12:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90494,"nodeType":"ImportDirective","src":"120:94:148","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":54435,"symbolAliases":[{"foreign":{"id":90493,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54434,"src":"129:13:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90496,"nodeType":"ImportDirective","src":"215:59:148","nodes":[],"absolutePath":"src/L1/L1ERC721Bridge.sol","file":"src/L1/L1ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":85419,"symbolAliases":[{"foreign":{"id":90495,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85418,"src":"224:14:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90498,"nodeType":"ImportDirective","src":"275:84:148","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC721.sol","file":"src/universal/IOptimismMintableERC721.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109408,"symbolAliases":[{"foreign":{"id":90497,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"284:23:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90500,"nodeType":"ImportDirective","src":"360:78:148","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":90499,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"369:20:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90502,"nodeType":"ImportDirective","src":"439:66:148","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":90501,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"448:14:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90504,"nodeType":"ImportDirective","src":"506:52:148","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90503,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"515:7:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90506,"nodeType":"ImportDirective","src":"559:56:148","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":90505,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"568:9:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90508,"nodeType":"ImportDirective","src":"616:58:148","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":90507,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"625:10:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90723,"nodeType":"ContractDefinition","src":"1389:4507:148","nodes":[{"id":90517,"nodeType":"VariableDeclaration","src":"1473:40:148","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90514,"nodeType":"StructuredDocumentation","src":"1444:24:148","text":"@custom:semver 1.7.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1496:7:148","scope":90723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90515,"name":"string","nodeType":"ElementaryTypeName","src":"1473:6:148","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e372e30","id":90516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1506:7:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcd77289efc7773aa152b2b29fc41f05d9109a509f3f68a18547b233f97c1fdc","typeString":"literal_string \"1.7.0\""},"value":"1.7.0"},"visibility":"public"},{"id":90534,"nodeType":"FunctionDefinition","src":"1576:98:148","nodes":[],"body":{"id":90533,"nodeType":"Block","src":"1605:69:148","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":90528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1661:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1653:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90526,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:148","typeDescriptions":{}}},"id":90529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:10:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1645:8:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":90524,"name":"address","nodeType":"ElementaryTypeName","src":"1645:8:148","stateMutability":"payable","typeDescriptions":{}}},"id":90530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1645:19:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90523,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90553,"src":"1615:10:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":90531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l1ERC721Bridge"],"nodeType":"FunctionCall","src":"1615:52:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90532,"nodeType":"ExpressionStatement","src":"1615:52:148"}]},"documentation":{"id":90518,"nodeType":"StructuredDocumentation","src":"1520:51:148","text":"@notice Constructs the L2ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":90521,"kind":"baseConstructorSpecifier","modifierName":{"id":90520,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1590:12:148"},"nodeType":"ModifierInvocation","src":"1590:14:148"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":90519,"nodeType":"ParameterList","parameters":[],"src":"1587:2:148"},"returnParameters":{"id":90522,"nodeType":"ParameterList","parameters":[],"src":"1605:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90553,"nodeType":"FunctionDefinition","src":"1813:263:148","nodes":[],"body":{"id":90552,"nodeType":"Block","src":"1885:191:148","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":90544,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1962:10:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":104004,"src":"1962:36:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90543,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1941:20:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":90546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:58:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"id":90548,"name":"_l1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90537,"src":"2042:15:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90547,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"2027:14:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":90549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2027:31:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90542,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108995,"src":"1895:19:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":90550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"1895:174:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90551,"nodeType":"ExpressionStatement","src":"1895:174:148"}]},"documentation":{"id":90535,"nodeType":"StructuredDocumentation","src":"1680:128:148","text":"@notice Initializes the contract.\n @param _l1ERC721Bridge Address of the ERC721 bridge contract on the other network."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":90540,"kind":"modifierInvocation","modifierName":{"id":90539,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"1873:11:148"},"nodeType":"ModifierInvocation","src":"1873:11:148"}],"name":"initialize","nameLocation":"1822:10:148","parameters":{"id":90538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90537,"mutability":"mutable","name":"_l1ERC721Bridge","nameLocation":"1849:15:148","nodeType":"VariableDeclaration","scope":90553,"src":"1833:31:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":90536,"name":"address","nodeType":"ElementaryTypeName","src":"1833:15:148","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"1832:33:148"},"returnParameters":{"id":90541,"nodeType":"ParameterList","parameters":[],"src":"1885:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90622,"nodeType":"FunctionDefinition","src":"2843:1275:148","nodes":[],"body":{"id":90621,"nodeType":"Block","src":"3088:1030:148","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90572,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3106:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":90575,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3129:4:148","typeDescriptions":{"typeIdentifier":"t_contract$_L2ERC721Bridge_$90723","typeString":"contract L2ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ERC721Bridge_$90723","typeString":"contract L2ERC721Bridge"}],"id":90574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3121:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90573,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:148","typeDescriptions":{}}},"id":90576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3121:13:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3106:28:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":90578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:44:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \"L2ERC721Bridge: local token cannot be self\""},"value":"L2ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \"L2ERC721Bridge: local token cannot be self\""}],"id":90571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3098:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3098:83:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90580,"nodeType":"ExpressionStatement","src":"3098:83:148"},{"expression":{"arguments":[{"arguments":[{"id":90584,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3363:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":90586,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3381:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}],"id":90585,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3376:4:148","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":90587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3376:29:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC721_$109407","typeString":"type(contract IOptimismMintableERC721)"}},"id":90588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3376:41:148","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":90582,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54434,"src":"3331:13:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$54434_$","typeString":"type(library ERC165Checker)"}},"id":90583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":54290,"src":"3331:31:148","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":90589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3331:87:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e20696e74657266616365206973206e6f7420636f6d706c69616e74","id":90590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3432:56:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \"L2ERC721Bridge: local token interface is not compliant\""},"value":"L2ERC721Bridge: local token interface is not compliant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \"L2ERC721Bridge: local token interface is not compliant\""}],"id":90581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3310:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3310:188:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90592,"nodeType":"ExpressionStatement","src":"3310:188:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90594,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90558,"src":"3530:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":90596,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3570:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90595,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3546:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":109400,"src":"3546:48:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":90599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:50:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3530:66:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b656e20666f72204f7074696d69736d204d696e7461626c6520455243373231206c6f63616c20746f6b656e","id":90601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3610:77:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\""},"value":"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\""}],"id":90593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3509:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3509:188:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90603,"nodeType":"ExpressionStatement","src":"3509:188:148"},{"expression":{"arguments":[{"id":90608,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90562,"src":"3944:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90609,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90564,"src":"3949:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90605,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3922:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90604,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3898:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":109362,"src":"3898:45:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":90610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:60:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90611,"nodeType":"ExpressionStatement","src":"3898:60:148"},{"eventCall":{"arguments":[{"id":90613,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"4051:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90614,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90558,"src":"4064:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90615,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90560,"src":"4078:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90616,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90562,"src":"4085:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90617,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90564,"src":"4090:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90618,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90566,"src":"4100:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90612,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108949,"src":"4029:21:148","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":90619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:82:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90620,"nodeType":"EmitStatement","src":"4024:87:148"}]},"documentation":{"id":90554,"nodeType":"StructuredDocumentation","src":"2082:756:148","text":"@notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the\n recipient on this domain.\n @param _localToken Address of the ERC721 token on this domain.\n @param _remoteToken Address of the ERC721 token on the other domain.\n @param _from Address that triggered the bridge on the other domain.\n @param _to Address to receive the token on this domain.\n @param _tokenId ID of the token being deposited.\n @param _extraData Optional data to forward to L1.\n Data supplied here will not be used to execute any code on L1 and is\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":90569,"kind":"modifierInvocation","modifierName":{"id":90568,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":108974,"src":"3068:15:148"},"nodeType":"ModifierInvocation","src":"3068:15:148"}],"name":"finalizeBridgeERC721","nameLocation":"2852:20:148","parameters":{"id":90567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90556,"mutability":"mutable","name":"_localToken","nameLocation":"2890:11:148","nodeType":"VariableDeclaration","scope":90622,"src":"2882:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90555,"name":"address","nodeType":"ElementaryTypeName","src":"2882:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90558,"mutability":"mutable","name":"_remoteToken","nameLocation":"2919:12:148","nodeType":"VariableDeclaration","scope":90622,"src":"2911:20:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90557,"name":"address","nodeType":"ElementaryTypeName","src":"2911:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90560,"mutability":"mutable","name":"_from","nameLocation":"2949:5:148","nodeType":"VariableDeclaration","scope":90622,"src":"2941:13:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90559,"name":"address","nodeType":"ElementaryTypeName","src":"2941:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90562,"mutability":"mutable","name":"_to","nameLocation":"2972:3:148","nodeType":"VariableDeclaration","scope":90622,"src":"2964:11:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90561,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90564,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:148","nodeType":"VariableDeclaration","scope":90622,"src":"2985:16:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90566,"mutability":"mutable","name":"_extraData","nameLocation":"3026:10:148","nodeType":"VariableDeclaration","scope":90622,"src":"3011:25:148","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90565,"name":"bytes","nodeType":"ElementaryTypeName","src":"3011:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2872:170:148"},"returnParameters":{"id":90570,"nodeType":"ParameterList","parameters":[],"src":"3088:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90722,"nodeType":"FunctionDefinition","src":"4157:1737:148","nodes":[],"body":{"id":90721,"nodeType":"Block","src":"4425:1469:148","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90642,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90627,"src":"4443:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":90645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4459:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90643,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:148","typeDescriptions":{}}},"id":90646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:10:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:26:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":90648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4471:51:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \"L2ERC721Bridge: remote token cannot be address(0)\""},"value":"L2ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \"L2ERC721Bridge: remote token cannot be address(0)\""}],"id":90641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4435:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:88:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90650,"nodeType":"ExpressionStatement","src":"4435:88:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90652,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"4628:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90657,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"4682:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90654,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"4661:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90653,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"4637:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":52493,"src":"4637:44:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":90658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:54:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:63:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a205769746864726177616c206973206e6f74206265696e6720696e69746961746564206279204e4654206f776e6572","id":90660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:64:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\""},"value":"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\""}],"id":90651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4607:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4607:172:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90662,"nodeType":"ExpressionStatement","src":"4607:172:148"},{"assignments":[90664],"declarations":[{"constant":false,"id":90664,"mutability":"mutable","name":"remoteToken","nameLocation":"4938:11:148","nodeType":"VariableDeclaration","scope":90721,"src":"4930:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90663,"name":"address","nodeType":"ElementaryTypeName","src":"4930:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":90670,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":90666,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"4976:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90665,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"4952:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":109400,"src":"4952:48:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":90669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:50:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4930:72:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90672,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5020:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90673,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90627,"src":"5035:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5020:27:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6573206e6f74206d6174636820676976656e2076616c7565","id":90675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5049:57:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \"L2ERC721Bridge: remote token does not match given value\""},"value":"L2ERC721Bridge: remote token does not match given value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \"L2ERC721Bridge: remote token does not match given value\""}],"id":90671,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5012:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5012:95:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90677,"nodeType":"ExpressionStatement","src":"5012:95:148"},{"expression":{"arguments":[{"id":90682,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5329:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90683,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5336:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90679,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5311:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90678,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"5287:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":109370,"src":"5287:41:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":90684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:58:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90685,"nodeType":"ExpressionStatement","src":"5287:58:148"},{"assignments":[90687],"declarations":[{"constant":false,"id":90687,"mutability":"mutable","name":"message","nameLocation":"5369:7:148","nodeType":"VariableDeclaration","scope":90721,"src":"5356:20:148","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90686,"name":"bytes","nodeType":"ElementaryTypeName","src":"5356:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":90700,"initialValue":{"arguments":[{"expression":{"expression":{"id":90690,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85418,"src":"5415:14:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1ERC721Bridge_$85418_$","typeString":"type(contract L1ERC721Bridge)"}},"id":90691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":85330,"src":"5415:35:148","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L1ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":90692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"5415:44:148","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":90693,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5461:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90694,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5474:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90695,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5487:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90696,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90631,"src":"5494:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90697,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5499:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90698,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90637,"src":"5509:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":90688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5379:3:148","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":90689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5379:22:148","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":90699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5379:150:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5356:173:148"},{"expression":{"arguments":[{"arguments":[{"id":90706,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108914,"src":"5673:11:148","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5665:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90704,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:148","typeDescriptions":{}}},"id":90707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5665:20:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90708,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90687,"src":"5697:7:148","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":90709,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90635,"src":"5720:12:148","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":90701,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108910,"src":"5632:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"id":90703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":108520,"src":"5632:21:148","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":90710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5632:103:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90711,"nodeType":"ExpressionStatement","src":"5632:103:148"},{"eventCall":{"arguments":[{"id":90713,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5828:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90714,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5841:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90715,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5854:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90716,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90631,"src":"5861:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90717,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5866:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90718,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90637,"src":"5876:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90712,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108934,"src":"5806:21:148","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":90719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:81:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90720,"nodeType":"EmitStatement","src":"5801:86:148"}]},"baseFunctions":[109117],"documentation":{"id":90623,"nodeType":"StructuredDocumentation","src":"4124:28:148","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4166:21:148","overrides":{"id":90639,"nodeType":"OverrideSpecifier","overrides":[],"src":"4412:8:148"},"parameters":{"id":90638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90625,"mutability":"mutable","name":"_localToken","nameLocation":"4205:11:148","nodeType":"VariableDeclaration","scope":90722,"src":"4197:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90624,"name":"address","nodeType":"ElementaryTypeName","src":"4197:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90627,"mutability":"mutable","name":"_remoteToken","nameLocation":"4234:12:148","nodeType":"VariableDeclaration","scope":90722,"src":"4226:20:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90626,"name":"address","nodeType":"ElementaryTypeName","src":"4226:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90629,"mutability":"mutable","name":"_from","nameLocation":"4264:5:148","nodeType":"VariableDeclaration","scope":90722,"src":"4256:13:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90628,"name":"address","nodeType":"ElementaryTypeName","src":"4256:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90631,"mutability":"mutable","name":"_to","nameLocation":"4287:3:148","nodeType":"VariableDeclaration","scope":90722,"src":"4279:11:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90630,"name":"address","nodeType":"ElementaryTypeName","src":"4279:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90633,"mutability":"mutable","name":"_tokenId","nameLocation":"4308:8:148","nodeType":"VariableDeclaration","scope":90722,"src":"4300:16:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90632,"name":"uint256","nodeType":"ElementaryTypeName","src":"4300:7:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90635,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4333:12:148","nodeType":"VariableDeclaration","scope":90722,"src":"4326:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90634,"name":"uint32","nodeType":"ElementaryTypeName","src":"4326:6:148","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90637,"mutability":"mutable","name":"_extraData","nameLocation":"4370:10:148","nodeType":"VariableDeclaration","scope":90722,"src":"4355:25:148","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90636,"name":"bytes","nodeType":"ElementaryTypeName","src":"4355:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4187:199:148"},"returnParameters":{"id":90640,"nodeType":"ParameterList","parameters":[],"src":"4425:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":90510,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1416:12:148"},"id":90511,"nodeType":"InheritanceSpecifier","src":"1416:12:148"},{"baseName":{"id":90512,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1430:7:148"},"id":90513,"nodeType":"InheritanceSpecifier","src":"1430:7:148"}],"canonicalName":"L2ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":90509,"nodeType":"StructuredDocumentation","src":"676:713:148","text":"@title L2ERC721Bridge\n @notice The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to\n make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\n acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge.\n This contract also acts as a burner for tokens being withdrawn.\n **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This\n bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to\n wait for the one-week challenge period to elapse before their Optimism-native NFT\n can be refunded on L2."},"fullyImplemented":true,"linearizedBaseContracts":[90723,109417,109118,49678],"name":"L2ERC721Bridge","nameLocation":"1398:14:148","scope":90724,"usedErrors":[]}],"license":"MIT"},"id":148} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L2OutputOracle.json b/packages/sdk/src/forge-artifacts/L2OutputOracle.json new file mode 100644 index 000000000000..31c2aeb5292c --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L2OutputOracle.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"CHALLENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FINALIZATION_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L2_BLOCK_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PROPOSER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SUBMISSION_INTERVAL","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"challenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"computeL2Timestamp","inputs":[{"name":"_l2BlockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deleteL2Outputs","inputs":[{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizationPeriodSeconds","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getL2Output","inputs":[{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OutputProposal","components":[{"name":"outputRoot","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"l2BlockNumber","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"getL2OutputAfter","inputs":[{"name":"_l2BlockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OutputProposal","components":[{"name":"outputRoot","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"l2BlockNumber","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"getL2OutputIndexAfter","inputs":[{"name":"_l2BlockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_submissionInterval","type":"uint256","internalType":"uint256"},{"name":"_l2BlockTime","type":"uint256","internalType":"uint256"},{"name":"_startingBlockNumber","type":"uint256","internalType":"uint256"},{"name":"_startingTimestamp","type":"uint256","internalType":"uint256"},{"name":"_proposer","type":"address","internalType":"address"},{"name":"_challenger","type":"address","internalType":"address"},{"name":"_finalizationPeriodSeconds","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2BlockTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"latestBlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"latestOutputIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nextBlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nextOutputIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposeL2Output","inputs":[{"name":"_outputRoot","type":"bytes32","internalType":"bytes32"},{"name":"_l2BlockNumber","type":"uint256","internalType":"uint256"},{"name":"_l1BlockHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1BlockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"proposer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"startingBlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"submissionInterval","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OutputProposed","inputs":[{"name":"outputRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"l2OutputIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"l2BlockNumber","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"l1Timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OutputsDeleted","inputs":[{"name":"prevNextOutputIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newNextOutputIndex","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50620000256001806000808080806200002b565b62000328565b600054610100900460ff16158080156200004c5750600054600160ff909116105b806200007c575062000069306200031960201b6200135d1760201c565b1580156200007c575060005460ff166001145b620000e55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000109576000805461ff0019166101001790555b60008811620001815760405162461bcd60e51b815260206004820152603a60248201527f4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657260448201527f76616c206d7573742062652067726561746572207468616e20300000000000006064820152608401620000dc565b60008711620001f95760405162461bcd60e51b815260206004820152603460248201527f4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d7560448201527f73742062652067726561746572207468616e20300000000000000000000000006064820152608401620000dc565b428511156200027f5760405162461bcd60e51b8152602060048201526044602482018190527f4c324f75747075744f7261636c653a207374617274696e67204c322074696d65908201527f7374616d70206d757374206265206c657373207468616e2063757272656e742060648201526374696d6560e01b608482015260a401620000dc565b6004889055600587905560018690556002859055600780546001600160a01b038087166001600160a01b0319928316179092556006805492861692909116919091179055600882905580156200030f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6001600160a01b03163b151590565b6115d580620003386000396000f3fe60806040526004361061018a5760003560e01c806389c44cbb116100d6578063ce5db8d61161007f578063dcec334811610059578063dcec33481461049b578063e1a41bcf146104b0578063f4daa291146104c657600080fd5b8063ce5db8d614610445578063cf8e5cf01461045b578063d1de856c1461047b57600080fd5b8063a25ae557116100b0578063a25ae55714610391578063a8e4fb90146103ed578063bffa7f0f1461041a57600080fd5b806389c44cbb1461034857806393991af3146103685780639aaab6481461037e57600080fd5b806369f16eec1161013857806370872aa51161011257806370872aa5146102fc5780637f00642014610312578063887862721461033257600080fd5b806369f16eec146102a75780636abcf563146102bc5780636b4d98dd146102d157600080fd5b8063529933df11610169578063529933df146101ea578063534db0e2146101ff57806354fd4d501461025157600080fd5b80622134cc1461018f5780631c89c97d146101b35780634599c788146101d5575b600080fd5b34801561019b57600080fd5b506005545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101d36101ce3660046113a2565b6104db565b005b3480156101e157600080fd5b506101a06108b6565b3480156101f657600080fd5b506004546101a0565b34801561020b57600080fd5b5060065461022c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101aa565b34801561025d57600080fd5b5061029a6040518060400160405280600581526020017f312e382e3000000000000000000000000000000000000000000000000000000081525081565b6040516101aa9190611405565b3480156102b357600080fd5b506101a0610929565b3480156102c857600080fd5b506003546101a0565b3480156102dd57600080fd5b5060065473ffffffffffffffffffffffffffffffffffffffff1661022c565b34801561030857600080fd5b506101a060015481565b34801561031e57600080fd5b506101a061032d366004611478565b61093b565b34801561033e57600080fd5b506101a060025481565b34801561035457600080fd5b506101d3610363366004611478565b610b4f565b34801561037457600080fd5b506101a060055481565b6101d361038c366004611491565b610de9565b34801561039d57600080fd5b506103b16103ac366004611478565b61124a565b60408051825181526020808401516fffffffffffffffffffffffffffffffff9081169183019190915292820151909216908201526060016101aa565b3480156103f957600080fd5b5060075461022c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042657600080fd5b5060075473ffffffffffffffffffffffffffffffffffffffff1661022c565b34801561045157600080fd5b506101a060085481565b34801561046757600080fd5b506103b1610476366004611478565b6112de565b34801561048757600080fd5b506101a0610496366004611478565b611316565b3480156104a757600080fd5b506101a0611346565b3480156104bc57600080fd5b506101a060045481565b3480156104d257600080fd5b506008546101a0565b600054610100900460ff16158080156104fb5750600054600160ff909116105b806105155750303b158015610515575060005460ff166001145b6105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561060457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60008811610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657260448201527f76616c206d7573742062652067726561746572207468616e2030000000000000606482015260840161059d565b60008711610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d7560448201527f73742062652067726561746572207468616e2030000000000000000000000000606482015260840161059d565b428511156107db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f4c324f75747075744f7261636c653a207374617274696e67204c322074696d65908201527f7374616d70206d757374206265206c657373207468616e2063757272656e742060648201527f74696d6500000000000000000000000000000000000000000000000000000000608482015260a40161059d565b60048890556005879055600186905560028590556007805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556006805492861692909116919091179055600882905580156108ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6003546000901561092057600380546108d1906001906114f2565b815481106108e1576108e1611509565b600091825260209091206002909102016001015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16919050565b6001545b905090565b600354600090610924906001906114f2565b60006109456108b6565b8211156109fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f7420666f72206120626c6f636b207468617420686173206e6f74206265656e2060648201527f70726f706f736564000000000000000000000000000000000000000000000000608482015260a40161059d565b600354610aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f74206173206e6f206f7574707574732068617665206265656e2070726f706f7360648201527f6564207965740000000000000000000000000000000000000000000000000000608482015260a40161059d565b6003546000905b80821015610b485760006002610acc8385611538565b610ad69190611550565b90508460038281548110610aec57610aec611509565b600091825260209091206002909102016001015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff161015610b3e57610b37816001611538565b9250610b42565b8091505b50610ab6565b5092915050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324f75747075744f7261636c653a206f6e6c7920746865206368616c6c656e60448201527f67657220616464726573732063616e2064656c657465206f7574707574730000606482015260840161059d565b6003548110610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f747075747320616674657220746865206c6174657374206f757470757420696e60648201527f6465780000000000000000000000000000000000000000000000000000000000608482015260a40161059d565b60085460038281548110610cc357610cc3611509565b6000918252602090912060016002909202010154610cf3906fffffffffffffffffffffffffffffffff16426114f2565b10610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f74707574732074686174206861766520616c7265616479206265656e2066696e60648201527f616c697a65640000000000000000000000000000000000000000000000000000608482015260a40161059d565b6000610db160035490565b90508160035581817f4ee37ac2c786ec85e87592d3c5c8a1dd66f8496dda3f125d9ea8ca5f657629b660405160405180910390a35050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f4c324f75747075744f7261636c653a206f6e6c79207468652070726f706f736560448201527f7220616464726573732063616e2070726f706f7365206e6577206f757470757460648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a40161059d565b610ebe611346565b8314610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f4c324f75747075744f7261636c653a20626c6f636b206e756d626572206d757360448201527f7420626520657175616c20746f206e65787420657870656374656420626c6f6360648201527f6b206e756d626572000000000000000000000000000000000000000000000000608482015260a40161059d565b42610f7c84611316565b10611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324f75747075744f7261636c653a2063616e6e6f742070726f706f7365204c60448201527f32206f757470757420696e207468652066757475726500000000000000000000606482015260840161059d565b83611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4c324f75747075744f7261636c653a204c32206f75747075742070726f706f7360448201527f616c2063616e6e6f7420626520746865207a65726f2068617368000000000000606482015260840161059d565b81156111525781814014611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4c324f75747075744f7261636c653a20626c6f636b206861736820646f65732060448201527f6e6f74206d61746368207468652068617368206174207468652065787065637460648201527f6564206865696768740000000000000000000000000000000000000000000000608482015260a40161059d565b8261115c60035490565b857fa7aaf2512769da4e444e3de247be2564225c2e7a8f74cfe528e46e17d24868e24260405161118e91815260200190565b60405180910390a45050604080516060810182529283526fffffffffffffffffffffffffffffffff4281166020850190815292811691840191825260038054600181018255600091909152935160029094027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810194909455915190518216700100000000000000000000000000000000029116177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c90910155565b60408051606081018252600080825260208201819052918101919091526003828154811061127a5761127a611509565b600091825260209182902060408051606081018252600290930290910180548352600101546fffffffffffffffffffffffffffffffff8082169484019490945270010000000000000000000000000000000090049092169181019190915292915050565b604080516060810182526000808252602082018190529181019190915260036113068361093b565b8154811061127a5761127a611509565b60006005546001548361132991906114f2565b611333919061158b565b6002546113409190611538565b92915050565b60006004546113536108b6565b6109249190611538565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b803573ffffffffffffffffffffffffffffffffffffffff8116811461139d57600080fd5b919050565b600080600080600080600060e0888a0312156113bd57600080fd5b873596506020880135955060408801359450606088013593506113e260808901611379565b92506113f060a08901611379565b915060c0880135905092959891949750929550565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b81811115611444576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561148a57600080fd5b5035919050565b600080600080608085870312156114a757600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611504576115046114c3565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561154b5761154b6114c3565b500190565b600082611586577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156115c3576115c36114c3565b50029056fea164736f6c634300080f000a","sourceMap":"611:13425:133:-:0;;;2792:305;;;;;;;;;-1:-1:-1;2816:274:133;2862:1;;2928;;;;;2816:10;:274::i;:::-;611:13425;;3742:985;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;4088:1:133::1;4066:19;:23;4058:94;;;::::0;-1:-1:-1;;;4058:94:133;;631:2:357;4058:94:133::1;::::0;::::1;613:21:357::0;670:2;650:18;;;643:30;709:34;689:18;;;682:62;780:28;760:18;;;753:56;826:19;;4058:94:133::1;429:422:357::0;4058:94:133::1;4185:1;4170:12;:16;4162:81;;;::::0;-1:-1:-1;;;4162:81:133;;1058:2:357;4162:81:133::1;::::0;::::1;1040:21:357::0;1097:2;1077:18;;;1070:30;1136:34;1116:18;;;1109:62;1207:22;1187:18;;;1180:50;1247:19;;4162:81:133::1;856:416:357::0;4162:81:133::1;4296:15;4274:18;:37;;4253:152;;;::::0;-1:-1:-1;;;4253:152:133;;1479:2:357;4253:152:133::1;::::0;::::1;1461:21:357::0;1518:2;1498:18;;;1491:30;;;1557:34;1537:18;;;1530:62;1628:34;1608:18;;;1601:62;-1:-1:-1;;;1679:19:357;;;1672:35;1724:19;;4253:152:133::1;1277:472:357::0;4253:152:133::1;4416:18;:40:::0;;;4466:11:::1;:26:::0;;;4502:19:::1;:42:::0;;;4554:17:::1;:38:::0;;;4602:8:::1;:20:::0;;-1:-1:-1;;;;;4602:20:133;;::::1;-1:-1:-1::0;;;;;;4602:20:133;;::::1;;::::0;;;4632:10:::1;:24:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;4666:25:::1;:54:::0;;;3457:99:43;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;1906:36:357;;3531:14:43;;1894:2:357;1879:18;3531:14:43;;;;;;;3457:99;3090:472;3742:985:133;;;;;;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;1754:194:357:-;611:13425:133;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061018a5760003560e01c806389c44cbb116100d6578063ce5db8d61161007f578063dcec334811610059578063dcec33481461049b578063e1a41bcf146104b0578063f4daa291146104c657600080fd5b8063ce5db8d614610445578063cf8e5cf01461045b578063d1de856c1461047b57600080fd5b8063a25ae557116100b0578063a25ae55714610391578063a8e4fb90146103ed578063bffa7f0f1461041a57600080fd5b806389c44cbb1461034857806393991af3146103685780639aaab6481461037e57600080fd5b806369f16eec1161013857806370872aa51161011257806370872aa5146102fc5780637f00642014610312578063887862721461033257600080fd5b806369f16eec146102a75780636abcf563146102bc5780636b4d98dd146102d157600080fd5b8063529933df11610169578063529933df146101ea578063534db0e2146101ff57806354fd4d501461025157600080fd5b80622134cc1461018f5780631c89c97d146101b35780634599c788146101d5575b600080fd5b34801561019b57600080fd5b506005545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101d36101ce3660046113a2565b6104db565b005b3480156101e157600080fd5b506101a06108b6565b3480156101f657600080fd5b506004546101a0565b34801561020b57600080fd5b5060065461022c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101aa565b34801561025d57600080fd5b5061029a6040518060400160405280600581526020017f312e382e3000000000000000000000000000000000000000000000000000000081525081565b6040516101aa9190611405565b3480156102b357600080fd5b506101a0610929565b3480156102c857600080fd5b506003546101a0565b3480156102dd57600080fd5b5060065473ffffffffffffffffffffffffffffffffffffffff1661022c565b34801561030857600080fd5b506101a060015481565b34801561031e57600080fd5b506101a061032d366004611478565b61093b565b34801561033e57600080fd5b506101a060025481565b34801561035457600080fd5b506101d3610363366004611478565b610b4f565b34801561037457600080fd5b506101a060055481565b6101d361038c366004611491565b610de9565b34801561039d57600080fd5b506103b16103ac366004611478565b61124a565b60408051825181526020808401516fffffffffffffffffffffffffffffffff9081169183019190915292820151909216908201526060016101aa565b3480156103f957600080fd5b5060075461022c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042657600080fd5b5060075473ffffffffffffffffffffffffffffffffffffffff1661022c565b34801561045157600080fd5b506101a060085481565b34801561046757600080fd5b506103b1610476366004611478565b6112de565b34801561048757600080fd5b506101a0610496366004611478565b611316565b3480156104a757600080fd5b506101a0611346565b3480156104bc57600080fd5b506101a060045481565b3480156104d257600080fd5b506008546101a0565b600054610100900460ff16158080156104fb5750600054600160ff909116105b806105155750303b158015610515575060005460ff166001145b6105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561060457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60008811610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657260448201527f76616c206d7573742062652067726561746572207468616e2030000000000000606482015260840161059d565b60008711610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d7560448201527f73742062652067726561746572207468616e2030000000000000000000000000606482015260840161059d565b428511156107db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f4c324f75747075744f7261636c653a207374617274696e67204c322074696d65908201527f7374616d70206d757374206265206c657373207468616e2063757272656e742060648201527f74696d6500000000000000000000000000000000000000000000000000000000608482015260a40161059d565b60048890556005879055600186905560028590556007805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556006805492861692909116919091179055600882905580156108ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6003546000901561092057600380546108d1906001906114f2565b815481106108e1576108e1611509565b600091825260209091206002909102016001015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16919050565b6001545b905090565b600354600090610924906001906114f2565b60006109456108b6565b8211156109fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f7420666f72206120626c6f636b207468617420686173206e6f74206265656e2060648201527f70726f706f736564000000000000000000000000000000000000000000000000608482015260a40161059d565b600354610aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f74206173206e6f206f7574707574732068617665206265656e2070726f706f7360648201527f6564207965740000000000000000000000000000000000000000000000000000608482015260a40161059d565b6003546000905b80821015610b485760006002610acc8385611538565b610ad69190611550565b90508460038281548110610aec57610aec611509565b600091825260209091206002909102016001015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff161015610b3e57610b37816001611538565b9250610b42565b8091505b50610ab6565b5092915050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324f75747075744f7261636c653a206f6e6c7920746865206368616c6c656e60448201527f67657220616464726573732063616e2064656c657465206f7574707574730000606482015260840161059d565b6003548110610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f747075747320616674657220746865206c6174657374206f757470757420696e60648201527f6465780000000000000000000000000000000000000000000000000000000000608482015260a40161059d565b60085460038281548110610cc357610cc3611509565b6000918252602090912060016002909202010154610cf3906fffffffffffffffffffffffffffffffff16426114f2565b10610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f74707574732074686174206861766520616c7265616479206265656e2066696e60648201527f616c697a65640000000000000000000000000000000000000000000000000000608482015260a40161059d565b6000610db160035490565b90508160035581817f4ee37ac2c786ec85e87592d3c5c8a1dd66f8496dda3f125d9ea8ca5f657629b660405160405180910390a35050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f4c324f75747075744f7261636c653a206f6e6c79207468652070726f706f736560448201527f7220616464726573732063616e2070726f706f7365206e6577206f757470757460648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a40161059d565b610ebe611346565b8314610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f4c324f75747075744f7261636c653a20626c6f636b206e756d626572206d757360448201527f7420626520657175616c20746f206e65787420657870656374656420626c6f6360648201527f6b206e756d626572000000000000000000000000000000000000000000000000608482015260a40161059d565b42610f7c84611316565b10611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324f75747075744f7261636c653a2063616e6e6f742070726f706f7365204c60448201527f32206f757470757420696e207468652066757475726500000000000000000000606482015260840161059d565b83611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4c324f75747075744f7261636c653a204c32206f75747075742070726f706f7360448201527f616c2063616e6e6f7420626520746865207a65726f2068617368000000000000606482015260840161059d565b81156111525781814014611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4c324f75747075744f7261636c653a20626c6f636b206861736820646f65732060448201527f6e6f74206d61746368207468652068617368206174207468652065787065637460648201527f6564206865696768740000000000000000000000000000000000000000000000608482015260a40161059d565b8261115c60035490565b857fa7aaf2512769da4e444e3de247be2564225c2e7a8f74cfe528e46e17d24868e24260405161118e91815260200190565b60405180910390a45050604080516060810182529283526fffffffffffffffffffffffffffffffff4281166020850190815292811691840191825260038054600181018255600091909152935160029094027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810194909455915190518216700100000000000000000000000000000000029116177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c90910155565b60408051606081018252600080825260208201819052918101919091526003828154811061127a5761127a611509565b600091825260209182902060408051606081018252600290930290910180548352600101546fffffffffffffffffffffffffffffffff8082169484019490945270010000000000000000000000000000000090049092169181019190915292915050565b604080516060810182526000808252602082018190529181019190915260036113068361093b565b8154811061127a5761127a611509565b60006005546001548361132991906114f2565b611333919061158b565b6002546113409190611538565b92915050565b60006004546113536108b6565b6109249190611538565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b803573ffffffffffffffffffffffffffffffffffffffff8116811461139d57600080fd5b919050565b600080600080600080600060e0888a0312156113bd57600080fd5b873596506020880135955060408801359450606088013593506113e260808901611379565b92506113f060a08901611379565b915060c0880135905092959891949750929550565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b81811115611444576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561148a57600080fd5b5035919050565b600080600080608085870312156114a757600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611504576115046114c3565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561154b5761154b6114c3565b500190565b600082611586577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156115c3576115c36114c3565b50029056fea164736f6c634300080f000a","sourceMap":"611:13425:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5264:92;;;;;;;;;;-1:-1:-1;5338:11:133;;5264:92;;;160:25:357;;;148:2;133:18;5264:92:133;;;;;;;;3742:985;;;;;;;;;;-1:-1:-1;3742:985:133;;;;;:::i;:::-;;:::i;:::-;;13212:174;;;;;;;;;;;;;:::i;4953:105::-;;;;;;;;;;-1:-1:-1;5033:18:133;;4953:105;;1426:25;;;;;;;;;;-1:-1:-1;1426:25:133;;;;;;;;;;;1182:42:357;1170:55;;;1152:74;;1140:2;1125:18;1426:25:133;1006:226:357;2598:40:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12608:105::-;;;;;;;;;;;;;:::i;12849:97::-;;;;;;;;;;-1:-1:-1;12923:9:133;:16;12849:97;;5580:88;;;;;;;;;;-1:-1:-1;5651:10:133;;;;5580:88;;743:34;;;;;;;;;;;;;;;;10969:896;;;;;;;;;;-1:-1:-1;10969:896:133;;;;;:::i;:::-;;:::i;863:32::-;;;;;;;;;;;;;;;;6689:975;;;;;;;;;;-1:-1:-1;6689:975:133;;;;;:::i;:::-;;:::i;1285:26::-;;;;;;;;;;;;;;;;8258:1981;;;;;;:::i;:::-;;:::i;10443:146::-;;;;;;;;;;-1:-1:-1;10443:146:133;;;;;:::i;:::-;;:::i;:::-;;;;2705:13:357;;2687:32;;2766:4;2754:17;;;2748:24;2791:34;2863:21;;;2841:20;;;2834:51;;;;2933:17;;;2927:24;2923:33;;;2901:20;;;2894:63;2675:2;2660:18;10443:146:133;2473:490:357;1564:23:133;;;;;;;;;;-1:-1:-1;1564:23:133;;;;;;;;5886:84;;;;;;;;;;-1:-1:-1;5955:8:133;;;;5886:84;;1728:40;;;;;;;;;;;;;;;;12228:174;;;;;;;;;;-1:-1:-1;12228:174:133;;;;;:::i;:::-;;:::i;13854:180::-;;;;;;;;;;-1:-1:-1;13854:180:133;;;;;:::i;:::-;;:::i;13524:121::-;;;;;;;;;;;;;:::i;1114:33::-;;;;;;;;;;;;;;;;6221:120;;;;;;;;;;-1:-1:-1;6309:25:133;;6221:120;;3742:985;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;3170:2:357;3146:190:43;;;3152:21:357;3209:2;3189:18;;;3182:30;3248:34;3228:18;;;3221:62;3319:16;3299:18;;;3292:44;3353:19;;3146:190:43;;;;;;;;;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;4088:1:133::1;4066:19;:23;4058:94;;;::::0;::::1;::::0;;3585:2:357;4058:94:133::1;::::0;::::1;3567:21:357::0;3624:2;3604:18;;;3597:30;3663:34;3643:18;;;3636:62;3734:28;3714:18;;;3707:56;3780:19;;4058:94:133::1;3383:422:357::0;4058:94:133::1;4185:1;4170:12;:16;4162:81;;;::::0;::::1;::::0;;4012:2:357;4162:81:133::1;::::0;::::1;3994:21:357::0;4051:2;4031:18;;;4024:30;4090:34;4070:18;;;4063:62;4161:22;4141:18;;;4134:50;4201:19;;4162:81:133::1;3810:416:357::0;4162:81:133::1;4296:15;4274:18;:37;;4253:152;;;::::0;::::1;::::0;;4433:2:357;4253:152:133::1;::::0;::::1;4415:21:357::0;4472:2;4452:18;;;4445:30;;;4511:34;4491:18;;;4484:62;4582:34;4562:18;;;4555:62;4654:6;4633:19;;;4626:35;4678:19;;4253:152:133::1;4231:472:357::0;4253:152:133::1;4416:18;:40:::0;;;4466:11:::1;:26:::0;;;4502:19:::1;:42:::0;;;4554:17:::1;:38:::0;;;4602:8:::1;:20:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;4632:10:::1;:24:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;4666:25:::1;:54:::0;;;3457:99:43;;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;4860:36:357;;3531:14:43;;4848:2:357;4833:18;3531:14:43;;;;;;;3457:99;3090:472;3742:985:133;;;;;;;:::o;13212:174::-;13288:9;:16;13262:7;;13288:21;:91;;13334:9;13344:16;;:20;;13363:1;;13344:20;:::i;:::-;13334:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:45;;;;;;;;;13212:174;-1:-1:-1;13212:174:133:o;13288:91::-;13312:19;;13288:91;13281:98;;13212:174;:::o;12608:105::-;12686:9;:16;12660:7;;12686:20;;12705:1;;12686:20;:::i;10969:896::-;11045:7;11184:19;:17;:19::i;:::-;11166:14;:37;;11145:156;;;;;;;5617:2:357;11145:156:133;;;5599:21:357;5656:2;5636:18;;;5629:30;5695:34;5675:18;;;5668:62;5766:34;5746:18;;;5739:62;5838:10;5817:19;;;5810:39;5866:19;;11145:156:133;5415:476:357;11145:156:133;11379:9;:16;11371:103;;;;;;;6098:2:357;11371:103:133;;;6080:21:357;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;6247:34;6227:18;;;6220:62;6319:8;6298:19;;;6291:37;6345:19;;11371:103:133;5896:474:357;11371:103:133;11589:9;:16;11552:10;;11615:224;11627:2;11622;:7;11615:224;;;11645:11;11671:1;11660:7;11665:2;11660;:7;:::i;:::-;11659:13;;;;:::i;:::-;11645:27;;11721:14;11690:9;11700:3;11690:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:28;;;;;;;;:45;11686:143;;;11760:7;:3;11766:1;11760:7;:::i;:::-;11755:12;;11686:143;;;11811:3;11806:8;;11686:143;11631:208;11615:224;;;-1:-1:-1;11856:2:133;10969:896;-1:-1:-1;;10969:896:133:o;6689:975::-;6779:10;;;;6765;:24;6757:99;;;;;;;6989:2:357;6757:99:133;;;6971:21:357;7028:2;7008:18;;;7001:30;7067:34;7047:18;;;7040:62;7138:32;7118:18;;;7111:60;7188:19;;6757:99:133;6787:426:357;6757:99:133;6974:9;:16;6957:33;;6936:135;;;;;;;7420:2:357;6936:135:133;;;7402:21:357;7459:2;7439:18;;;7432:30;7498:34;7478:18;;;7471:62;7569:34;7549:18;;;7542:62;7641:5;7620:19;;;7613:34;7664:19;;6936:135:133;7218:471:357;6936:135:133;7238:25;;7200:9;7210:14;7200:25;;;;;;;;:::i;:::-;;;;;;;;;:35;:25;;;;;:35;;7182:53;;7200:35;;7182:15;:53;:::i;:::-;:81;7161:198;;;;;;;7896:2:357;7161:198:133;;;7878:21:357;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;8045:34;8025:18;;;8018:62;8117:8;8096:19;;;8089:37;8143:19;;7161:198:133;7694:474:357;7161:198:133;7370:29;7402:17;12923:9;:16;;12849:97;7402:17;7370:49;;7564:14;7548;7541:38;7642:14;7619:21;7604:53;;;;;;;;;;6747:917;6689:975;:::o;8258:1981::-;8481:8;;;;8467:10;:22;8459:100;;;;;;;8375:2:357;8459:100:133;;;8357:21:357;8414:2;8394:18;;;8387:30;8453:34;8433:18;;;8426:62;8524:34;8504:18;;;8497:62;8596:3;8575:19;;;8568:32;8617:19;;8459:100:133;8173:469:357;8459:100:133;8609:17;:15;:17::i;:::-;8591:14;:35;8570:154;;;;;;;8849:2:357;8570:154:133;;;8831:21:357;8888:2;8868:18;;;8861:30;8927:34;8907:18;;;8900:62;8998:34;8978:18;;;8971:62;9070:10;9049:19;;;9042:39;9098:19;;8570:154:133;8647:476:357;8570:154:133;8793:15;8756:34;8775:14;8756:18;:34::i;:::-;:52;8735:153;;;;;;;9330:2:357;8735:153:133;;;9312:21:357;9369:2;9349:18;;;9342:30;9408:34;9388:18;;;9381:62;9479:24;9459:18;;;9452:52;9521:19;;8735:153:133;9128:418:357;8735:153:133;8907:11;8899:96;;;;;;;9753:2:357;8899:96:133;;;9735:21:357;9792:2;9772:18;;;9765:30;9831:34;9811:18;;;9804:62;9902:28;9882:18;;;9875:56;9948:19;;8899:96:133;9551:422:357;8899:96:133;9010:26;;9006:897;;9773:12;9754:14;9744:25;:41;9719:173;;;;;;;10180:2:357;9719:173:133;;;10162:21:357;10219:2;10199:18;;;10192:30;10258:34;10238:18;;;10231:62;10329:34;10309:18;;;10302:62;10401:11;10380:19;;;10373:40;10430:19;;9719:173:133;9978:477:357;9719:173:133;9965:14;9946:17;12923:9;:16;;12849:97;9946:17;9933:11;9918:79;9981:15;9918:79;;;;160:25:357;;148:2;133:18;;14:177;9918:79:133;;;;;;;;-1:-1:-1;;10036:186:133;;;;;;;;;;;;10135:15;10036:186;;;;;;;;;;;;;;;;;10008:9;:224;;;;;;;-1:-1:-1;10008:224:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8258:1981::o;10443:146::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;10557:9:133;10567:14;10557:25;;;;;;;;:::i;:::-;;;;;;;;;;10550:32;;;;;;;;10557:25;;;;;;;10550:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10443:146;-1:-1:-1;;10443:146:133:o;12228:174::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;12347:9:133;12357:37;12379:14;12357:21;:37::i;:::-;12347:48;;;;;;;;:::i;13854:180::-;13927:7;14015:11;;13992:19;;13975:14;:36;;;;:::i;:::-;13974:52;;;;:::i;:::-;13953:17;;:74;;;;:::i;:::-;13946:81;13854:180;-1:-1:-1;;13854:180:133:o;13524:121::-;13572:7;13620:18;;13598:19;:17;:19::i;:::-;:40;;;;:::i;1175:320:59:-;1465:19;;;:23;;;1175:320::o;196:196:357:-;264:20;;324:42;313:54;;303:65;;293:93;;382:1;379;372:12;293:93;196:196;;;:::o;397:604::-;510:6;518;526;534;542;550;558;611:3;599:9;590:7;586:23;582:33;579:53;;;628:1;625;618:12;579:53;664:9;651:23;641:33;;721:2;710:9;706:18;693:32;683:42;;772:2;761:9;757:18;744:32;734:42;;823:2;812:9;808:18;795:32;785:42;;846:39;880:3;869:9;865:19;846:39;:::i;:::-;836:49;;904:39;938:3;927:9;923:19;904:39;:::i;:::-;894:49;;990:3;979:9;975:19;962:33;952:43;;397:604;;;;;;;;;;:::o;1237:656::-;1349:4;1378:2;1407;1396:9;1389:21;1439:6;1433:13;1482:6;1477:2;1466:9;1462:18;1455:34;1507:1;1517:140;1531:6;1528:1;1525:13;1517:140;;;1626:14;;;1622:23;;1616:30;1592:17;;;1611:2;1588:26;1581:66;1546:10;;1517:140;;;1675:6;1672:1;1669:13;1666:91;;;1745:1;1740:2;1731:6;1720:9;1716:22;1712:31;1705:42;1666:91;-1:-1:-1;1809:2:357;1797:15;1814:66;1793:88;1778:104;;;;1884:2;1774:113;;1237:656;-1:-1:-1;;;1237:656:357:o;1898:180::-;1957:6;2010:2;1998:9;1989:7;1985:23;1981:32;1978:52;;;2026:1;2023;2016:12;1978:52;-1:-1:-1;2049:23:357;;1898:180;-1:-1:-1;1898:180:357:o;2083:385::-;2169:6;2177;2185;2193;2246:3;2234:9;2225:7;2221:23;2217:33;2214:53;;;2263:1;2260;2253:12;2214:53;-1:-1:-1;;2286:23:357;;;2356:2;2341:18;;2328:32;;-1:-1:-1;2407:2:357;2392:18;;2379:32;;2458:2;2443:18;2430:32;;-1:-1:-1;2083:385:357;-1:-1:-1;2083:385:357:o;4907:184::-;4959:77;4956:1;4949:88;5056:4;5053:1;5046:15;5080:4;5077:1;5070:15;5096:125;5136:4;5164:1;5161;5158:8;5155:34;;;5169:18;;:::i;:::-;-1:-1:-1;5206:9:357;;5096:125::o;5226:184::-;5278:77;5275:1;5268:88;5375:4;5372:1;5365:15;5399:4;5396:1;5389:15;6375:128;6415:3;6446:1;6442:6;6439:1;6436:13;6433:39;;;6452:18;;:::i;:::-;-1:-1:-1;6488:9:357;;6375:128::o;6508:274::-;6548:1;6574;6564:189;;6609:77;6606:1;6599:88;6710:4;6707:1;6700:15;6738:4;6735:1;6728:15;6564:189;-1:-1:-1;6767:9:357;;6508:274::o;10460:228::-;10500:7;10626:1;10558:66;10554:74;10551:1;10548:81;10543:1;10536:9;10529:17;10525:105;10522:131;;;10633:18;;:::i;:::-;-1:-1:-1;10673:9:357;;10460:228::o","linkReferences":{}},"methodIdentifiers":{"CHALLENGER()":"6b4d98dd","FINALIZATION_PERIOD_SECONDS()":"f4daa291","L2_BLOCK_TIME()":"002134cc","PROPOSER()":"bffa7f0f","SUBMISSION_INTERVAL()":"529933df","challenger()":"534db0e2","computeL2Timestamp(uint256)":"d1de856c","deleteL2Outputs(uint256)":"89c44cbb","finalizationPeriodSeconds()":"ce5db8d6","getL2Output(uint256)":"a25ae557","getL2OutputAfter(uint256)":"cf8e5cf0","getL2OutputIndexAfter(uint256)":"7f006420","initialize(uint256,uint256,uint256,uint256,address,address,uint256)":"1c89c97d","l2BlockTime()":"93991af3","latestBlockNumber()":"4599c788","latestOutputIndex()":"69f16eec","nextBlockNumber()":"dcec3348","nextOutputIndex()":"6abcf563","proposeL2Output(bytes32,uint256,bytes32,uint256)":"9aaab648","proposer()":"a8e4fb90","startingBlockNumber()":"70872aa5","startingTimestamp()":"88786272","submissionInterval()":"e1a41bcf","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"l2OutputIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"l2BlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"l1Timestamp\",\"type\":\"uint256\"}],\"name\":\"OutputProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"prevNextOutputIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newNextOutputIndex\",\"type\":\"uint256\"}],\"name\":\"OutputsDeleted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHALLENGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FINALIZATION_PERIOD_SECONDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L2_BLOCK_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUBMISSION_INTERVAL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2BlockNumber\",\"type\":\"uint256\"}],\"name\":\"computeL2Timestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"}],\"name\":\"deleteL2Outputs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"}],\"name\":\"getL2Output\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.OutputProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2BlockNumber\",\"type\":\"uint256\"}],\"name\":\"getL2OutputAfter\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.OutputProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2BlockNumber\",\"type\":\"uint256\"}],\"name\":\"getL2OutputIndexAfter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_submissionInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_l2BlockTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startingBlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startingTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestOutputIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextOutputIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l2BlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_l1BlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1BlockNumber\",\"type\":\"uint256\"}],\"name\":\"proposeL2Output\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@title L2OutputOracle\",\"events\":{\"OutputProposed(bytes32,uint256,uint256,uint256)\":{\"params\":{\"l1Timestamp\":\"The L1 timestamp when proposed.\",\"l2BlockNumber\":\"The L2 block number of the output root.\",\"l2OutputIndex\":\"The index of the output in the l2Outputs array.\",\"outputRoot\":\"The output root.\"}},\"OutputsDeleted(uint256,uint256)\":{\"params\":{\"newNextOutputIndex\":\"Next L2 output index after the deletion.\",\"prevNextOutputIndex\":\"Next L2 output index before the deletion.\"}}},\"kind\":\"dev\",\"methods\":{\"CHALLENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Address of the challenger.\"}},\"FINALIZATION_PERIOD_SECONDS()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Finalization period in seconds.\"}},\"L2_BLOCK_TIME()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"L2 block time.\"}},\"PROPOSER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Address of the proposer.\"}},\"SUBMISSION_INTERVAL()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Submission interval.\"}},\"computeL2Timestamp(uint256)\":{\"params\":{\"_l2BlockNumber\":\"The L2 block number of the target block.\"},\"returns\":{\"_0\":\"L2 timestamp of the given block.\"}},\"deleteL2Outputs(uint256)\":{\"params\":{\"_l2OutputIndex\":\"Index of the first L2 output to be deleted. All outputs after this output will also be deleted.\"}},\"getL2Output(uint256)\":{\"params\":{\"_l2OutputIndex\":\"Index of the output to return.\"},\"returns\":{\"_0\":\"The output at the given index.\"}},\"getL2OutputAfter(uint256)\":{\"params\":{\"_l2BlockNumber\":\"L2 block number to find a checkpoint for.\"},\"returns\":{\"_0\":\"First checkpoint that commits to the given L2 block number.\"}},\"getL2OutputIndexAfter(uint256)\":{\"params\":{\"_l2BlockNumber\":\"L2 block number to find a checkpoint for.\"},\"returns\":{\"_0\":\"Index of the first checkpoint that commits to the given L2 block number.\"}},\"initialize(uint256,uint256,uint256,uint256,address,address,uint256)\":{\"params\":{\"_challenger\":\"The address of the challenger.\",\"_finalizationPeriodSeconds\":\"The minimum time (in seconds) that must elapse before a withdrawal can be finalized.\",\"_l2BlockTime\":\"The time per L2 block, in seconds.\",\"_proposer\":\"The address of the proposer.\",\"_startingBlockNumber\":\"The number of the first L2 block.\",\"_startingTimestamp\":\"The timestamp of the first L2 block.\",\"_submissionInterval\":\"Interval in blocks at which checkpoints must be submitted.\"}},\"latestBlockNumber()\":{\"returns\":{\"_0\":\"Latest submitted L2 block number.\"}},\"latestOutputIndex()\":{\"returns\":{\"_0\":\"The number of outputs that have been proposed.\"}},\"nextBlockNumber()\":{\"returns\":{\"_0\":\"Next L2 block number.\"}},\"nextOutputIndex()\":{\"returns\":{\"_0\":\"The index of the next output to be proposed.\"}},\"proposeL2Output(bytes32,uint256,bytes32,uint256)\":{\"params\":{\"_l1BlockHash\":\"A block hash which must be included in the current chain.\",\"_l1BlockNumber\":\"The block number with the specified block hash.\",\"_l2BlockNumber\":\"The L2 block number that resulted in _outputRoot.\",\"_outputRoot\":\"The L2 output of the checkpoint block.\"}}},\"stateVariables\":{\"challenger\":{\"custom:network-specific\":\"\"},\"finalizationPeriodSeconds\":{\"custom:network-specific\":\"\"},\"l2BlockTime\":{\"custom:network-specific\":\"\"},\"proposer\":{\"custom:network-specific\":\"\"},\"submissionInterval\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"1.8.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"OutputProposed(bytes32,uint256,uint256,uint256)\":{\"notice\":\"Emitted when an output is proposed.\"},\"OutputsDeleted(uint256,uint256)\":{\"notice\":\"Emitted when outputs are deleted.\"}},\"kind\":\"user\",\"methods\":{\"CHALLENGER()\":{\"notice\":\"Getter for the challenger address. Public getter is legacy and will be removed in the future. Use `challenger` instead.\"},\"FINALIZATION_PERIOD_SECONDS()\":{\"notice\":\"Getter for the finalizationPeriodSeconds. Public getter is legacy and will be removed in the future. Use `finalizationPeriodSeconds` instead.\"},\"L2_BLOCK_TIME()\":{\"notice\":\"Getter for the l2BlockTime. Public getter is legacy and will be removed in the future. Use `l2BlockTime` instead.\"},\"PROPOSER()\":{\"notice\":\"Getter for the proposer address. Public getter is legacy and will be removed in the future. Use `proposer` instead.\"},\"SUBMISSION_INTERVAL()\":{\"notice\":\"Getter for the submissionInterval. Public getter is legacy and will be removed in the future. Use `submissionInterval` instead.\"},\"challenger()\":{\"notice\":\"The address of the challenger. Can be updated via upgrade.\"},\"computeL2Timestamp(uint256)\":{\"notice\":\"Returns the L2 timestamp corresponding to a given L2 block number.\"},\"constructor\":{\"notice\":\"Constructs the L2OutputOracle contract. Initializes variables to the same values as in the getting-started config.\"},\"deleteL2Outputs(uint256)\":{\"notice\":\"Deletes all output proposals after and including the proposal that corresponds to the given output index. Only the challenger address can delete outputs.\"},\"finalizationPeriodSeconds()\":{\"notice\":\"The minimum time (in seconds) that must elapse before a withdrawal can be finalized.\"},\"getL2Output(uint256)\":{\"notice\":\"Returns an output by index. Needed to return a struct instead of a tuple.\"},\"getL2OutputAfter(uint256)\":{\"notice\":\"Returns the L2 output proposal that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block.\"},\"getL2OutputIndexAfter(uint256)\":{\"notice\":\"Returns the index of the L2 output that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block.\"},\"initialize(uint256,uint256,uint256,uint256,address,address,uint256)\":{\"notice\":\"Initializer.\"},\"l2BlockTime()\":{\"notice\":\"The time between L2 blocks in seconds. Once set, this value MUST NOT be modified.\"},\"latestBlockNumber()\":{\"notice\":\"Returns the block number of the latest submitted L2 output proposal. If no proposals been submitted yet then this function will return the starting block number.\"},\"latestOutputIndex()\":{\"notice\":\"Returns the number of outputs that have been proposed. Will revert if no outputs have been proposed yet.\"},\"nextBlockNumber()\":{\"notice\":\"Computes the block number of the next L2 block that needs to be checkpointed.\"},\"nextOutputIndex()\":{\"notice\":\"Returns the index of the next output to be proposed.\"},\"proposeL2Output(bytes32,uint256,bytes32,uint256)\":{\"notice\":\"Accepts an outputRoot and the timestamp of the corresponding L2 block. The timestamp must be equal to the current value returned by `nextTimestamp()` in order to be accepted. This function may only be called by the Proposer.\"},\"proposer()\":{\"notice\":\"The address of the proposer. Can be updated via upgrade.\"},\"startingBlockNumber()\":{\"notice\":\"The number of the first L2 block recorded in this contract.\"},\"startingTimestamp()\":{\"notice\":\"The timestamp of the first L2 block recorded in this contract.\"},\"submissionInterval()\":{\"notice\":\"The interval in L2 blocks at which checkpoints must be submitted.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The L2OutputOracle contains an array of L2 state outputs, where each output is a commitment to the state of the L2 chain. Other contracts like the OptimismPortal use these outputs to verify information about the state of L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L2OutputOracle.sol\":\"L2OutputOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303\",\"dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"outputRoot","type":"bytes32","indexed":true},{"internalType":"uint256","name":"l2OutputIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"l2BlockNumber","type":"uint256","indexed":true},{"internalType":"uint256","name":"l1Timestamp","type":"uint256","indexed":false}],"type":"event","name":"OutputProposed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"prevNextOutputIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"newNextOutputIndex","type":"uint256","indexed":true}],"type":"event","name":"OutputsDeleted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CHALLENGER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FINALIZATION_PERIOD_SECONDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"L2_BLOCK_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUBMISSION_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"challenger","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_l2BlockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeL2Timestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteL2Outputs"},{"inputs":[],"stateMutability":"view","type":"function","name":"finalizationPeriodSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getL2Output","outputs":[{"internalType":"struct Types.OutputProposal","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"outputRoot","type":"bytes32"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"uint128","name":"l2BlockNumber","type":"uint128"}]}]},{"inputs":[{"internalType":"uint256","name":"_l2BlockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getL2OutputAfter","outputs":[{"internalType":"struct Types.OutputProposal","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"outputRoot","type":"bytes32"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"uint128","name":"l2BlockNumber","type":"uint128"}]}]},{"inputs":[{"internalType":"uint256","name":"_l2BlockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getL2OutputIndexAfter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_submissionInterval","type":"uint256"},{"internalType":"uint256","name":"_l2BlockTime","type":"uint256"},{"internalType":"uint256","name":"_startingBlockNumber","type":"uint256"},{"internalType":"uint256","name":"_startingTimestamp","type":"uint256"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_challenger","type":"address"},{"internalType":"uint256","name":"_finalizationPeriodSeconds","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l2BlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestOutputIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextOutputIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_outputRoot","type":"bytes32"},{"internalType":"uint256","name":"_l2BlockNumber","type":"uint256"},{"internalType":"bytes32","name":"_l1BlockHash","type":"bytes32"},{"internalType":"uint256","name":"_l1BlockNumber","type":"uint256"}],"stateMutability":"payable","type":"function","name":"proposeL2Output"},{"inputs":[],"stateMutability":"view","type":"function","name":"proposer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"submissionInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"CHALLENGER()":{"custom:legacy":"","returns":{"_0":"Address of the challenger."}},"FINALIZATION_PERIOD_SECONDS()":{"custom:legacy":"","returns":{"_0":"Finalization period in seconds."}},"L2_BLOCK_TIME()":{"custom:legacy":"","returns":{"_0":"L2 block time."}},"PROPOSER()":{"custom:legacy":"","returns":{"_0":"Address of the proposer."}},"SUBMISSION_INTERVAL()":{"custom:legacy":"","returns":{"_0":"Submission interval."}},"computeL2Timestamp(uint256)":{"params":{"_l2BlockNumber":"The L2 block number of the target block."},"returns":{"_0":"L2 timestamp of the given block."}},"deleteL2Outputs(uint256)":{"params":{"_l2OutputIndex":"Index of the first L2 output to be deleted. All outputs after this output will also be deleted."}},"getL2Output(uint256)":{"params":{"_l2OutputIndex":"Index of the output to return."},"returns":{"_0":"The output at the given index."}},"getL2OutputAfter(uint256)":{"params":{"_l2BlockNumber":"L2 block number to find a checkpoint for."},"returns":{"_0":"First checkpoint that commits to the given L2 block number."}},"getL2OutputIndexAfter(uint256)":{"params":{"_l2BlockNumber":"L2 block number to find a checkpoint for."},"returns":{"_0":"Index of the first checkpoint that commits to the given L2 block number."}},"initialize(uint256,uint256,uint256,uint256,address,address,uint256)":{"params":{"_challenger":"The address of the challenger.","_finalizationPeriodSeconds":"The minimum time (in seconds) that must elapse before a withdrawal can be finalized.","_l2BlockTime":"The time per L2 block, in seconds.","_proposer":"The address of the proposer.","_startingBlockNumber":"The number of the first L2 block.","_startingTimestamp":"The timestamp of the first L2 block.","_submissionInterval":"Interval in blocks at which checkpoints must be submitted."}},"latestBlockNumber()":{"returns":{"_0":"Latest submitted L2 block number."}},"latestOutputIndex()":{"returns":{"_0":"The number of outputs that have been proposed."}},"nextBlockNumber()":{"returns":{"_0":"Next L2 block number."}},"nextOutputIndex()":{"returns":{"_0":"The index of the next output to be proposed."}},"proposeL2Output(bytes32,uint256,bytes32,uint256)":{"params":{"_l1BlockHash":"A block hash which must be included in the current chain.","_l1BlockNumber":"The block number with the specified block hash.","_l2BlockNumber":"The L2 block number that resulted in _outputRoot.","_outputRoot":"The L2 output of the checkpoint block."}}},"version":1},"userdoc":{"kind":"user","methods":{"CHALLENGER()":{"notice":"Getter for the challenger address. Public getter is legacy and will be removed in the future. Use `challenger` instead."},"FINALIZATION_PERIOD_SECONDS()":{"notice":"Getter for the finalizationPeriodSeconds. Public getter is legacy and will be removed in the future. Use `finalizationPeriodSeconds` instead."},"L2_BLOCK_TIME()":{"notice":"Getter for the l2BlockTime. Public getter is legacy and will be removed in the future. Use `l2BlockTime` instead."},"PROPOSER()":{"notice":"Getter for the proposer address. Public getter is legacy and will be removed in the future. Use `proposer` instead."},"SUBMISSION_INTERVAL()":{"notice":"Getter for the submissionInterval. Public getter is legacy and will be removed in the future. Use `submissionInterval` instead."},"challenger()":{"notice":"The address of the challenger. Can be updated via upgrade."},"computeL2Timestamp(uint256)":{"notice":"Returns the L2 timestamp corresponding to a given L2 block number."},"constructor":{"notice":"Constructs the L2OutputOracle contract. Initializes variables to the same values as in the getting-started config."},"deleteL2Outputs(uint256)":{"notice":"Deletes all output proposals after and including the proposal that corresponds to the given output index. Only the challenger address can delete outputs."},"finalizationPeriodSeconds()":{"notice":"The minimum time (in seconds) that must elapse before a withdrawal can be finalized."},"getL2Output(uint256)":{"notice":"Returns an output by index. Needed to return a struct instead of a tuple."},"getL2OutputAfter(uint256)":{"notice":"Returns the L2 output proposal that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block."},"getL2OutputIndexAfter(uint256)":{"notice":"Returns the index of the L2 output that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block."},"initialize(uint256,uint256,uint256,uint256,address,address,uint256)":{"notice":"Initializer."},"l2BlockTime()":{"notice":"The time between L2 blocks in seconds. Once set, this value MUST NOT be modified."},"latestBlockNumber()":{"notice":"Returns the block number of the latest submitted L2 output proposal. If no proposals been submitted yet then this function will return the starting block number."},"latestOutputIndex()":{"notice":"Returns the number of outputs that have been proposed. Will revert if no outputs have been proposed yet."},"nextBlockNumber()":{"notice":"Computes the block number of the next L2 block that needs to be checkpointed."},"nextOutputIndex()":{"notice":"Returns the index of the next output to be proposed."},"proposeL2Output(bytes32,uint256,bytes32,uint256)":{"notice":"Accepts an outputRoot and the timestamp of the corresponding L2 block. The timestamp must be equal to the current value returned by `nextTimestamp()` in order to be accepted. This function may only be called by the Proposer."},"proposer()":{"notice":"The address of the proposer. Can be updated via upgrade."},"startingBlockNumber()":{"notice":"The number of the first L2 block recorded in this contract."},"startingTimestamp()":{"notice":"The timestamp of the first L2 block recorded in this contract."},"submissionInterval()":{"notice":"The interval in L2 blocks at which checkpoints must be submitted."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L2OutputOracle.sol":"L2OutputOracle"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L2OutputOracle.sol":{"keccak256":"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42","urls":["bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303","dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":85939,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"startingBlockNumber","offset":0,"slot":"1","type":"t_uint256"},{"astId":85942,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"startingTimestamp","offset":0,"slot":"2","type":"t_uint256"},{"astId":85947,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"l2Outputs","offset":0,"slot":"3","type":"t_array(t_struct(OutputProposal)104307_storage)dyn_storage"},{"astId":85950,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"submissionInterval","offset":0,"slot":"4","type":"t_uint256"},{"astId":85953,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"l2BlockTime","offset":0,"slot":"5","type":"t_uint256"},{"astId":85956,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"challenger","offset":0,"slot":"6","type":"t_address"},{"astId":85959,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"proposer","offset":0,"slot":"7","type":"t_address"},{"astId":85962,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"finalizationPeriodSeconds","offset":0,"slot":"8","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(OutputProposal)104307_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct Types.OutputProposal[]","numberOfBytes":"32","base":"t_struct(OutputProposal)104307_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_struct(OutputProposal)104307_storage":{"encoding":"inplace","label":"struct Types.OutputProposal","numberOfBytes":"64","members":[{"astId":104302,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"outputRoot","offset":0,"slot":"0","type":"t_bytes32"},{"astId":104304,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"timestamp","offset":0,"slot":"1","type":"t_uint128"},{"astId":104306,"contract":"src/L1/L2OutputOracle.sol:L2OutputOracle","label":"l2BlockNumber","offset":16,"slot":"1","type":"t_uint128"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"CHALLENGER()":{"notice":"Getter for the challenger address. Public getter is legacy and will be removed in the future. Use `challenger` instead."},"FINALIZATION_PERIOD_SECONDS()":{"notice":"Getter for the finalizationPeriodSeconds. Public getter is legacy and will be removed in the future. Use `finalizationPeriodSeconds` instead."},"L2_BLOCK_TIME()":{"notice":"Getter for the l2BlockTime. Public getter is legacy and will be removed in the future. Use `l2BlockTime` instead."},"PROPOSER()":{"notice":"Getter for the proposer address. Public getter is legacy and will be removed in the future. Use `proposer` instead."},"SUBMISSION_INTERVAL()":{"notice":"Getter for the submissionInterval. Public getter is legacy and will be removed in the future. Use `submissionInterval` instead."},"challenger()":{"notice":"The address of the challenger. Can be updated via upgrade."},"computeL2Timestamp(uint256)":{"notice":"Returns the L2 timestamp corresponding to a given L2 block number."},"constructor":{"notice":"Constructs the L2OutputOracle contract. Initializes variables to the same values as in the getting-started config."},"deleteL2Outputs(uint256)":{"notice":"Deletes all output proposals after and including the proposal that corresponds to the given output index. Only the challenger address can delete outputs."},"finalizationPeriodSeconds()":{"notice":"The minimum time (in seconds) that must elapse before a withdrawal can be finalized."},"getL2Output(uint256)":{"notice":"Returns an output by index. Needed to return a struct instead of a tuple."},"getL2OutputAfter(uint256)":{"notice":"Returns the L2 output proposal that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block."},"getL2OutputIndexAfter(uint256)":{"notice":"Returns the index of the L2 output that checkpoints a given L2 block number. Uses a binary search to find the first output greater than or equal to the given block."},"initialize(uint256,uint256,uint256,uint256,address,address,uint256)":{"notice":"Initializer."},"l2BlockTime()":{"notice":"The time between L2 blocks in seconds. Once set, this value MUST NOT be modified."},"latestBlockNumber()":{"notice":"Returns the block number of the latest submitted L2 output proposal. If no proposals been submitted yet then this function will return the starting block number."},"latestOutputIndex()":{"notice":"Returns the number of outputs that have been proposed. Will revert if no outputs have been proposed yet."},"nextBlockNumber()":{"notice":"Computes the block number of the next L2 block that needs to be checkpointed."},"nextOutputIndex()":{"notice":"Returns the index of the next output to be proposed."},"proposeL2Output(bytes32,uint256,bytes32,uint256)":{"notice":"Accepts an outputRoot and the timestamp of the corresponding L2 block. The timestamp must be equal to the current value returned by `nextTimestamp()` in order to be accepted. This function may only be called by the Proposer."},"proposer()":{"notice":"The address of the proposer. Can be updated via upgrade."},"startingBlockNumber()":{"notice":"The number of the first L2 block recorded in this contract."},"startingTimestamp()":{"notice":"The timestamp of the first L2 block recorded in this contract."},"submissionInterval()":{"notice":"The interval in L2 blocks at which checkpoints must be submitted."},"version()":{"notice":"Semantic version."}},"events":{"OutputProposed(bytes32,uint256,uint256,uint256)":{"notice":"Emitted when an output is proposed."},"OutputsDeleted(uint256,uint256)":{"notice":"Emitted when outputs are deleted."}},"notice":"The L2OutputOracle contains an array of L2 state outputs, where each output is a commitment to the state of the L2 chain. Other contracts like the OptimismPortal use these outputs to verify information about the state of L2."},"devdoc":{"version":1,"kind":"dev","methods":{"CHALLENGER()":{"returns":{"_0":"Address of the challenger."}},"FINALIZATION_PERIOD_SECONDS()":{"returns":{"_0":"Finalization period in seconds."}},"L2_BLOCK_TIME()":{"returns":{"_0":"L2 block time."}},"PROPOSER()":{"returns":{"_0":"Address of the proposer."}},"SUBMISSION_INTERVAL()":{"returns":{"_0":"Submission interval."}},"computeL2Timestamp(uint256)":{"params":{"_l2BlockNumber":"The L2 block number of the target block."},"returns":{"_0":"L2 timestamp of the given block."}},"deleteL2Outputs(uint256)":{"params":{"_l2OutputIndex":"Index of the first L2 output to be deleted. All outputs after this output will also be deleted."}},"getL2Output(uint256)":{"params":{"_l2OutputIndex":"Index of the output to return."},"returns":{"_0":"The output at the given index."}},"getL2OutputAfter(uint256)":{"params":{"_l2BlockNumber":"L2 block number to find a checkpoint for."},"returns":{"_0":"First checkpoint that commits to the given L2 block number."}},"getL2OutputIndexAfter(uint256)":{"params":{"_l2BlockNumber":"L2 block number to find a checkpoint for."},"returns":{"_0":"Index of the first checkpoint that commits to the given L2 block number."}},"initialize(uint256,uint256,uint256,uint256,address,address,uint256)":{"params":{"_challenger":"The address of the challenger.","_finalizationPeriodSeconds":"The minimum time (in seconds) that must elapse before a withdrawal can be finalized.","_l2BlockTime":"The time per L2 block, in seconds.","_proposer":"The address of the proposer.","_startingBlockNumber":"The number of the first L2 block.","_startingTimestamp":"The timestamp of the first L2 block.","_submissionInterval":"Interval in blocks at which checkpoints must be submitted."}},"latestBlockNumber()":{"returns":{"_0":"Latest submitted L2 block number."}},"latestOutputIndex()":{"returns":{"_0":"The number of outputs that have been proposed."}},"nextBlockNumber()":{"returns":{"_0":"Next L2 block number."}},"nextOutputIndex()":{"returns":{"_0":"The index of the next output to be proposed."}},"proposeL2Output(bytes32,uint256,bytes32,uint256)":{"params":{"_l1BlockHash":"A block hash which must be included in the current chain.","_l1BlockNumber":"The block number with the specified block hash.","_l2BlockNumber":"The L2 block number that resulted in _outputRoot.","_outputRoot":"The L2 output of the checkpoint block."}}},"events":{"OutputProposed(bytes32,uint256,uint256,uint256)":{"params":{"l1Timestamp":"The L1 timestamp when proposed.","l2BlockNumber":"The L2 block number of the output root.","l2OutputIndex":"The index of the output in the l2Outputs array.","outputRoot":"The output root."}},"OutputsDeleted(uint256,uint256)":{"params":{"newNextOutputIndex":"Next L2 output index after the deletion.","prevNextOutputIndex":"Next L2 output index before the deletion."}}}},"ast":{"absolutePath":"src/L1/L2OutputOracle.sol","id":86436,"exportedSymbols":{"Constants":[103096],"ISemver":[109417],"Initializable":[49678],"L2OutputOracle":[86435],"Types":[104349]},"nodeType":"SourceUnit","src":"32:14005:133","nodes":[{"id":85923,"nodeType":"PragmaDirective","src":"32:23:133","nodes":[],"literals":["solidity","0.8",".15"]},{"id":85925,"nodeType":"ImportDirective","src":"57:86:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":86436,"sourceUnit":49679,"symbolAliases":[{"foreign":{"id":85924,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"66:13:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85927,"nodeType":"ImportDirective","src":"144:52:133","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":86436,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":85926,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"153:7:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85929,"nodeType":"ImportDirective","src":"197:48:133","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":86436,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":85928,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"206:5:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85931,"nodeType":"ImportDirective","src":"246:56:133","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":86436,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":85930,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"255:9:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86435,"nodeType":"ContractDefinition","src":"611:13425:133","nodes":[{"id":85939,"nodeType":"VariableDeclaration","src":"743:34:133","nodes":[],"constant":false,"documentation":{"id":85937,"nodeType":"StructuredDocumentation","src":"667:71:133","text":"@notice The number of the first L2 block recorded in this contract."},"functionSelector":"70872aa5","mutability":"mutable","name":"startingBlockNumber","nameLocation":"758:19:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85938,"name":"uint256","nodeType":"ElementaryTypeName","src":"743:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":85942,"nodeType":"VariableDeclaration","src":"863:32:133","nodes":[],"constant":false,"documentation":{"id":85940,"nodeType":"StructuredDocumentation","src":"784:74:133","text":"@notice The timestamp of the first L2 block recorded in this contract."},"functionSelector":"88786272","mutability":"mutable","name":"startingTimestamp","nameLocation":"878:17:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85941,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":85947,"nodeType":"VariableDeclaration","src":"951:41:133","nodes":[],"constant":false,"documentation":{"id":85943,"nodeType":"StructuredDocumentation","src":"902:44:133","text":"@notice An array of L2 output proposals."},"mutability":"mutable","name":"l2Outputs","nameLocation":"983:9:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal[]"},"typeName":{"baseType":{"id":85945,"nodeType":"UserDefinedTypeName","pathNode":{"id":85944,"name":"Types.OutputProposal","nodeType":"IdentifierPath","referencedDeclaration":104307,"src":"951:20:133"},"referencedDeclaration":104307,"src":"951:20:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage_ptr","typeString":"struct Types.OutputProposal"}},"id":85946,"nodeType":"ArrayTypeName","src":"951:22:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage_ptr","typeString":"struct Types.OutputProposal[]"}},"visibility":"internal"},{"id":85950,"nodeType":"VariableDeclaration","src":"1114:33:133","nodes":[],"constant":false,"documentation":{"id":85948,"nodeType":"StructuredDocumentation","src":"999:110:133","text":"@notice The interval in L2 blocks at which checkpoints must be submitted.\n @custom:network-specific"},"functionSelector":"e1a41bcf","mutability":"mutable","name":"submissionInterval","nameLocation":"1129:18:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":85953,"nodeType":"VariableDeclaration","src":"1285:26:133","nodes":[],"constant":false,"documentation":{"id":85951,"nodeType":"StructuredDocumentation","src":"1154:126:133","text":"@notice The time between L2 blocks in seconds. Once set, this value MUST NOT be modified.\n @custom:network-specific"},"functionSelector":"93991af3","mutability":"mutable","name":"l2BlockTime","nameLocation":"1300:11:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":85956,"nodeType":"VariableDeclaration","src":"1426:25:133","nodes":[],"constant":false,"documentation":{"id":85954,"nodeType":"StructuredDocumentation","src":"1318:103:133","text":"@notice The address of the challenger. Can be updated via upgrade.\n @custom:network-specific"},"functionSelector":"534db0e2","mutability":"mutable","name":"challenger","nameLocation":"1441:10:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85955,"name":"address","nodeType":"ElementaryTypeName","src":"1426:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":85959,"nodeType":"VariableDeclaration","src":"1564:23:133","nodes":[],"constant":false,"documentation":{"id":85957,"nodeType":"StructuredDocumentation","src":"1458:101:133","text":"@notice The address of the proposer. Can be updated via upgrade.\n @custom:network-specific"},"functionSelector":"a8e4fb90","mutability":"mutable","name":"proposer","nameLocation":"1579:8:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85958,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":85962,"nodeType":"VariableDeclaration","src":"1728:40:133","nodes":[],"constant":false,"documentation":{"id":85960,"nodeType":"StructuredDocumentation","src":"1594:129:133","text":"@notice The minimum time (in seconds) that must elapse before a withdrawal can be finalized.\n @custom:network-specific"},"functionSelector":"ce5db8d6","mutability":"mutable","name":"finalizationPeriodSeconds","nameLocation":"1743:25:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":85973,"nodeType":"EventDefinition","src":"2080:146:133","nodes":[],"anonymous":false,"documentation":{"id":85963,"nodeType":"StructuredDocumentation","src":"1775:300:133","text":"@notice Emitted when an output is proposed.\n @param outputRoot The output root.\n @param l2OutputIndex The index of the output in the l2Outputs array.\n @param l2BlockNumber The L2 block number of the output root.\n @param l1Timestamp The L1 timestamp when proposed."},"eventSelector":"a7aaf2512769da4e444e3de247be2564225c2e7a8f74cfe528e46e17d24868e2","name":"OutputProposed","nameLocation":"2086:14:133","parameters":{"id":85972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85965,"indexed":true,"mutability":"mutable","name":"outputRoot","nameLocation":"2126:10:133","nodeType":"VariableDeclaration","scope":85973,"src":"2110:26:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2110:7:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85967,"indexed":true,"mutability":"mutable","name":"l2OutputIndex","nameLocation":"2154:13:133","nodeType":"VariableDeclaration","scope":85973,"src":"2138:29:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85966,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85969,"indexed":true,"mutability":"mutable","name":"l2BlockNumber","nameLocation":"2185:13:133","nodeType":"VariableDeclaration","scope":85973,"src":"2169:29:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85968,"name":"uint256","nodeType":"ElementaryTypeName","src":"2169:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85971,"indexed":false,"mutability":"mutable","name":"l1Timestamp","nameLocation":"2208:11:133","nodeType":"VariableDeclaration","scope":85973,"src":"2200:19:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85970,"name":"uint256","nodeType":"ElementaryTypeName","src":"2200:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2100:125:133"}},{"id":85980,"nodeType":"EventDefinition","src":"2435:94:133","nodes":[],"anonymous":false,"documentation":{"id":85974,"nodeType":"StructuredDocumentation","src":"2232:198:133","text":"@notice Emitted when outputs are deleted.\n @param prevNextOutputIndex Next L2 output index before the deletion.\n @param newNextOutputIndex Next L2 output index after the deletion."},"eventSelector":"4ee37ac2c786ec85e87592d3c5c8a1dd66f8496dda3f125d9ea8ca5f657629b6","name":"OutputsDeleted","nameLocation":"2441:14:133","parameters":{"id":85979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85976,"indexed":true,"mutability":"mutable","name":"prevNextOutputIndex","nameLocation":"2472:19:133","nodeType":"VariableDeclaration","scope":85980,"src":"2456:35:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85975,"name":"uint256","nodeType":"ElementaryTypeName","src":"2456:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85978,"indexed":true,"mutability":"mutable","name":"newNextOutputIndex","nameLocation":"2509:18:133","nodeType":"VariableDeclaration","scope":85980,"src":"2493:34:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85977,"name":"uint256","nodeType":"ElementaryTypeName","src":"2493:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2455:73:133"}},{"id":85984,"nodeType":"VariableDeclaration","src":"2598:40:133","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":85981,"nodeType":"StructuredDocumentation","src":"2535:58:133","text":"@notice Semantic version.\n @custom:semver 1.8.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2621:7:133","scope":86435,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85982,"name":"string","nodeType":"ElementaryTypeName","src":"2598:6:133","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e382e30","id":85983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:7:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd02a4b5da981b4c403351c949b2ca4bdb2fb4b72b50891f7eb106d3eb7049e9","typeString":"literal_string \"1.8.0\""},"value":"1.8.0"},"visibility":"public"},{"id":86005,"nodeType":"FunctionDefinition","src":"2792:305:133","nodes":[],"body":{"id":86004,"nodeType":"Block","src":"2806:291:133","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"31","id":85989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2862:1:133","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"31","id":85990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:133","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"30","id":85991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":85992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2963:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":85995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2997:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2989:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85993,"name":"address","nodeType":"ElementaryTypeName","src":"2989:7:133","typeDescriptions":{}}},"id":85996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2989:10:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":85999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3034:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3026:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85997,"name":"address","nodeType":"ElementaryTypeName","src":"3026:7:133","typeDescriptions":{}}},"id":86000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3026:10:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":86001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3078:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85988,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86076,"src":"2816:10:133","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256,address,address,uint256)"}},"id":86002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_submissionInterval","_l2BlockTime","_startingBlockNumber","_startingTimestamp","_proposer","_challenger","_finalizationPeriodSeconds"],"nodeType":"FunctionCall","src":"2816:274:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86003,"nodeType":"ExpressionStatement","src":"2816:274:133"}]},"documentation":{"id":85985,"nodeType":"StructuredDocumentation","src":"2645:142:133","text":"@notice Constructs the L2OutputOracle contract. Initializes variables to the same values as\n in the getting-started config."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85986,"nodeType":"ParameterList","parameters":[],"src":"2803:2:133"},"returnParameters":{"id":85987,"nodeType":"ParameterList","parameters":[],"src":"2806:0:133"},"scope":86435,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86076,"nodeType":"FunctionDefinition","src":"3742:985:133","nodes":[],"body":{"id":86075,"nodeType":"Block","src":"4048:679:133","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86026,"name":"_submissionInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86008,"src":"4066:19:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":86027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4088:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4066:23:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657276616c206d7573742062652067726561746572207468616e2030","id":86029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4091:60:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_a22226fa4dda9c6c644d22b26affbedef5d3fc150a8b26008a6baa26d85d543f","typeString":"literal_string \"L2OutputOracle: submission interval must be greater than 0\""},"value":"L2OutputOracle: submission interval must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a22226fa4dda9c6c644d22b26affbedef5d3fc150a8b26008a6baa26d85d543f","typeString":"literal_string \"L2OutputOracle: submission interval must be greater than 0\""}],"id":86025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4058:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4058:94:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86031,"nodeType":"ExpressionStatement","src":"4058:94:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86033,"name":"_l2BlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86010,"src":"4170:12:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":86034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4185:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4170:16:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d7573742062652067726561746572207468616e2030","id":86036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4188:54:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac9ff37c1a6529ab3b67321d57550ba5021740edf6aa58a5708726b9aa5179b7","typeString":"literal_string \"L2OutputOracle: L2 block time must be greater than 0\""},"value":"L2OutputOracle: L2 block time must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac9ff37c1a6529ab3b67321d57550ba5021740edf6aa58a5708726b9aa5179b7","typeString":"literal_string \"L2OutputOracle: L2 block time must be greater than 0\""}],"id":86032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4162:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4162:81:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86038,"nodeType":"ExpressionStatement","src":"4162:81:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86040,"name":"_startingTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86014,"src":"4274:18:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":86041,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4296:5:133","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4296:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4274:37:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a207374617274696e67204c322074696d657374616d70206d757374206265206c657373207468616e2063757272656e742074696d65","id":86044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4325:70:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_898fd7ed8708de35483db60bd4b962ea9e8aa9058ba6455714580e35a9e067a7","typeString":"literal_string \"L2OutputOracle: starting L2 timestamp must be less than current time\""},"value":"L2OutputOracle: starting L2 timestamp must be less than current time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_898fd7ed8708de35483db60bd4b962ea9e8aa9058ba6455714580e35a9e067a7","typeString":"literal_string \"L2OutputOracle: starting L2 timestamp must be less than current time\""}],"id":86039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4253:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4253:152:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86046,"nodeType":"ExpressionStatement","src":"4253:152:133"},{"expression":{"id":86049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86047,"name":"submissionInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85950,"src":"4416:18:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86048,"name":"_submissionInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86008,"src":"4437:19:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4416:40:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86050,"nodeType":"ExpressionStatement","src":"4416:40:133"},{"expression":{"id":86053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86051,"name":"l2BlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85953,"src":"4466:11:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86052,"name":"_l2BlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86010,"src":"4480:12:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4466:26:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86054,"nodeType":"ExpressionStatement","src":"4466:26:133"},{"expression":{"id":86057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86055,"name":"startingBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85939,"src":"4502:19:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86056,"name":"_startingBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86012,"src":"4524:20:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4502:42:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86058,"nodeType":"ExpressionStatement","src":"4502:42:133"},{"expression":{"id":86061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86059,"name":"startingTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85942,"src":"4554:17:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86060,"name":"_startingTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86014,"src":"4574:18:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4554:38:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86062,"nodeType":"ExpressionStatement","src":"4554:38:133"},{"expression":{"id":86065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86063,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85959,"src":"4602:8:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86064,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86016,"src":"4613:9:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4602:20:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86066,"nodeType":"ExpressionStatement","src":"4602:20:133"},{"expression":{"id":86069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86067,"name":"challenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85956,"src":"4632:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86068,"name":"_challenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86018,"src":"4645:11:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4632:24:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86070,"nodeType":"ExpressionStatement","src":"4632:24:133"},{"expression":{"id":86073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86071,"name":"finalizationPeriodSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85962,"src":"4666:25:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86072,"name":"_finalizationPeriodSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86020,"src":"4694:26:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4666:54:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86074,"nodeType":"ExpressionStatement","src":"4666:54:133"}]},"documentation":{"id":86006,"nodeType":"StructuredDocumentation","src":"3103:634:133","text":"@notice Initializer.\n @param _submissionInterval Interval in blocks at which checkpoints must be submitted.\n @param _l2BlockTime The time per L2 block, in seconds.\n @param _startingBlockNumber The number of the first L2 block.\n @param _startingTimestamp The timestamp of the first L2 block.\n @param _proposer The address of the proposer.\n @param _challenger The address of the challenger.\n @param _finalizationPeriodSeconds The minimum time (in seconds) that must elapse before a withdrawal\n can be finalized."},"functionSelector":"1c89c97d","implemented":true,"kind":"function","modifiers":[{"id":86023,"kind":"modifierInvocation","modifierName":{"id":86022,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"4032:11:133"},"nodeType":"ModifierInvocation","src":"4032:11:133"}],"name":"initialize","nameLocation":"3751:10:133","parameters":{"id":86021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86008,"mutability":"mutable","name":"_submissionInterval","nameLocation":"3779:19:133","nodeType":"VariableDeclaration","scope":86076,"src":"3771:27:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86007,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86010,"mutability":"mutable","name":"_l2BlockTime","nameLocation":"3816:12:133","nodeType":"VariableDeclaration","scope":86076,"src":"3808:20:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86009,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86012,"mutability":"mutable","name":"_startingBlockNumber","nameLocation":"3846:20:133","nodeType":"VariableDeclaration","scope":86076,"src":"3838:28:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86014,"mutability":"mutable","name":"_startingTimestamp","nameLocation":"3884:18:133","nodeType":"VariableDeclaration","scope":86076,"src":"3876:26:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86013,"name":"uint256","nodeType":"ElementaryTypeName","src":"3876:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86016,"mutability":"mutable","name":"_proposer","nameLocation":"3920:9:133","nodeType":"VariableDeclaration","scope":86076,"src":"3912:17:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86015,"name":"address","nodeType":"ElementaryTypeName","src":"3912:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86018,"mutability":"mutable","name":"_challenger","nameLocation":"3947:11:133","nodeType":"VariableDeclaration","scope":86076,"src":"3939:19:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86017,"name":"address","nodeType":"ElementaryTypeName","src":"3939:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86020,"mutability":"mutable","name":"_finalizationPeriodSeconds","nameLocation":"3976:26:133","nodeType":"VariableDeclaration","scope":86076,"src":"3968:34:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86019,"name":"uint256","nodeType":"ElementaryTypeName","src":"3968:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3761:247:133"},"returnParameters":{"id":86024,"nodeType":"ParameterList","parameters":[],"src":"4048:0:133"},"scope":86435,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86085,"nodeType":"FunctionDefinition","src":"4953:105:133","nodes":[],"body":{"id":86084,"nodeType":"Block","src":"5016:42:133","nodes":[],"statements":[{"expression":{"id":86082,"name":"submissionInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85950,"src":"5033:18:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86081,"id":86083,"nodeType":"Return","src":"5026:25:133"}]},"documentation":{"id":86077,"nodeType":"StructuredDocumentation","src":"4733:215:133","text":"@notice Getter for the submissionInterval.\n Public getter is legacy and will be removed in the future. Use `submissionInterval` instead.\n @return Submission interval.\n @custom:legacy"},"functionSelector":"529933df","implemented":true,"kind":"function","modifiers":[],"name":"SUBMISSION_INTERVAL","nameLocation":"4962:19:133","parameters":{"id":86078,"nodeType":"ParameterList","parameters":[],"src":"4981:2:133"},"returnParameters":{"id":86081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86085,"src":"5007:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86079,"name":"uint256","nodeType":"ElementaryTypeName","src":"5007:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5006:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86094,"nodeType":"FunctionDefinition","src":"5264:92:133","nodes":[],"body":{"id":86093,"nodeType":"Block","src":"5321:35:133","nodes":[],"statements":[{"expression":{"id":86091,"name":"l2BlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85953,"src":"5338:11:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86090,"id":86092,"nodeType":"Return","src":"5331:18:133"}]},"documentation":{"id":86086,"nodeType":"StructuredDocumentation","src":"5064:195:133","text":"@notice Getter for the l2BlockTime.\n Public getter is legacy and will be removed in the future. Use `l2BlockTime` instead.\n @return L2 block time.\n @custom:legacy"},"functionSelector":"002134cc","implemented":true,"kind":"function","modifiers":[],"name":"L2_BLOCK_TIME","nameLocation":"5273:13:133","parameters":{"id":86087,"nodeType":"ParameterList","parameters":[],"src":"5286:2:133"},"returnParameters":{"id":86090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86094,"src":"5312:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86088,"name":"uint256","nodeType":"ElementaryTypeName","src":"5312:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5311:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86103,"nodeType":"FunctionDefinition","src":"5580:88:133","nodes":[],"body":{"id":86102,"nodeType":"Block","src":"5634:34:133","nodes":[],"statements":[{"expression":{"id":86100,"name":"challenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85956,"src":"5651:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":86099,"id":86101,"nodeType":"Return","src":"5644:17:133"}]},"documentation":{"id":86095,"nodeType":"StructuredDocumentation","src":"5362:213:133","text":"@notice Getter for the challenger address.\n Public getter is legacy and will be removed in the future. Use `challenger` instead.\n @return Address of the challenger.\n @custom:legacy"},"functionSelector":"6b4d98dd","implemented":true,"kind":"function","modifiers":[],"name":"CHALLENGER","nameLocation":"5589:10:133","parameters":{"id":86096,"nodeType":"ParameterList","parameters":[],"src":"5599:2:133"},"returnParameters":{"id":86099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86103,"src":"5625:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86097,"name":"address","nodeType":"ElementaryTypeName","src":"5625:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5624:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86112,"nodeType":"FunctionDefinition","src":"5886:84:133","nodes":[],"body":{"id":86111,"nodeType":"Block","src":"5938:32:133","nodes":[],"statements":[{"expression":{"id":86109,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85959,"src":"5955:8:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":86108,"id":86110,"nodeType":"Return","src":"5948:15:133"}]},"documentation":{"id":86104,"nodeType":"StructuredDocumentation","src":"5674:207:133","text":"@notice Getter for the proposer address.\n Public getter is legacy and will be removed in the future. Use `proposer` instead.\n @return Address of the proposer.\n @custom:legacy"},"functionSelector":"bffa7f0f","implemented":true,"kind":"function","modifiers":[],"name":"PROPOSER","nameLocation":"5895:8:133","parameters":{"id":86105,"nodeType":"ParameterList","parameters":[],"src":"5903:2:133"},"returnParameters":{"id":86108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86112,"src":"5929:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86106,"name":"address","nodeType":"ElementaryTypeName","src":"5929:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5928:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86121,"nodeType":"FunctionDefinition","src":"6221:120:133","nodes":[],"body":{"id":86120,"nodeType":"Block","src":"6292:49:133","nodes":[],"statements":[{"expression":{"id":86118,"name":"finalizationPeriodSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85962,"src":"6309:25:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86117,"id":86119,"nodeType":"Return","src":"6302:32:133"}]},"documentation":{"id":86113,"nodeType":"StructuredDocumentation","src":"5976:240:133","text":"@notice Getter for the finalizationPeriodSeconds.\n Public getter is legacy and will be removed in the future. Use `finalizationPeriodSeconds` instead.\n @return Finalization period in seconds.\n @custom:legacy"},"functionSelector":"f4daa291","implemented":true,"kind":"function","modifiers":[],"name":"FINALIZATION_PERIOD_SECONDS","nameLocation":"6230:27:133","parameters":{"id":86114,"nodeType":"ParameterList","parameters":[],"src":"6257:2:133"},"returnParameters":{"id":86117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86121,"src":"6283:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86115,"name":"uint256","nodeType":"ElementaryTypeName","src":"6283:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6282:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86168,"nodeType":"FunctionDefinition","src":"6689:975:133","nodes":[],"body":{"id":86167,"nodeType":"Block","src":"6747:917:133","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86128,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6765:3:133","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6765:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86130,"name":"challenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85956,"src":"6779:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6765:24:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a206f6e6c7920746865206368616c6c656e67657220616464726573732063616e2064656c657465206f757470757473","id":86132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6791:64:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_73ca084205f86e7b7b010a7bf147aa19f097b7f0a2c7768452f50d69ddf1c8a6","typeString":"literal_string \"L2OutputOracle: only the challenger address can delete outputs\""},"value":"L2OutputOracle: only the challenger address can delete outputs"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73ca084205f86e7b7b010a7bf147aa19f097b7f0a2c7768452f50d69ddf1c8a6","typeString":"literal_string \"L2OutputOracle: only the challenger address can delete outputs\""}],"id":86127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6757:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6757:99:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86134,"nodeType":"ExpressionStatement","src":"6757:99:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86136,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86124,"src":"6957:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":86137,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"6974:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6974:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6957:33:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f75747075747320616674657220746865206c6174657374206f757470757420696e646578","id":86140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6992:69:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fade7eaadcf8920b61cd280bfaf9215de3229fd9b8bc0c114506f50c3323d08","typeString":"literal_string \"L2OutputOracle: cannot delete outputs after the latest output index\""},"value":"L2OutputOracle: cannot delete outputs after the latest output index"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8fade7eaadcf8920b61cd280bfaf9215de3229fd9b8bc0c114506f50c3323d08","typeString":"literal_string \"L2OutputOracle: cannot delete outputs after the latest output index\""}],"id":86135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6936:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6936:135:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86142,"nodeType":"ExpressionStatement","src":"6936:135:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86144,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7182:5:133","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7182:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"baseExpression":{"id":86146,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"7200:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86148,"indexExpression":{"id":86147,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86124,"src":"7210:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7200:25:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage","typeString":"struct Types.OutputProposal storage ref"}},"id":86149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":104304,"src":"7200:35:133","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7182:53:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86151,"name":"finalizationPeriodSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85962,"src":"7238:25:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7182:81:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7574707574732074686174206861766520616c7265616479206265656e2066696e616c697a6564","id":86153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7277:72:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_d750945a6d3cdf9f7770d0a5d95aa9b56f37a0ad47759ca246a1b772fdac6c07","typeString":"literal_string \"L2OutputOracle: cannot delete outputs that have already been finalized\""},"value":"L2OutputOracle: cannot delete outputs that have already been finalized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d750945a6d3cdf9f7770d0a5d95aa9b56f37a0ad47759ca246a1b772fdac6c07","typeString":"literal_string \"L2OutputOracle: cannot delete outputs that have already been finalized\""}],"id":86143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7161:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7161:198:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86155,"nodeType":"ExpressionStatement","src":"7161:198:133"},{"assignments":[86157],"declarations":[{"constant":false,"id":86157,"mutability":"mutable","name":"prevNextL2OutputIndex","nameLocation":"7378:21:133","nodeType":"VariableDeclaration","scope":86167,"src":"7370:29:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86156,"name":"uint256","nodeType":"ElementaryTypeName","src":"7370:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86160,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":86158,"name":"nextOutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86382,"src":"7402:15:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":86159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7402:17:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7370:49:133"},{"AST":{"nodeType":"YulBlock","src":"7527:62:133","statements":[{"expression":{"arguments":[{"name":"l2Outputs.slot","nodeType":"YulIdentifier","src":"7548:14:133"},{"name":"_l2OutputIndex","nodeType":"YulIdentifier","src":"7564:14:133"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7541:6:133"},"nodeType":"YulFunctionCall","src":"7541:38:133"},"nodeType":"YulExpressionStatement","src":"7541:38:133"}]},"evmVersion":"london","externalReferences":[{"declaration":86124,"isOffset":false,"isSlot":false,"src":"7564:14:133","valueSize":1},{"declaration":85947,"isOffset":false,"isSlot":true,"src":"7548:14:133","suffix":"slot","valueSize":1}],"id":86161,"nodeType":"InlineAssembly","src":"7518:71:133"},{"eventCall":{"arguments":[{"id":86163,"name":"prevNextL2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86157,"src":"7619:21:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86164,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86124,"src":"7642:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86162,"name":"OutputsDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85980,"src":"7604:14:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":86165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7604:53:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86166,"nodeType":"EmitStatement","src":"7599:58:133"}]},"documentation":{"id":86122,"nodeType":"StructuredDocumentation","src":"6347:337:133","text":"@notice Deletes all output proposals after and including the proposal that corresponds to\n the given output index. Only the challenger address can delete outputs.\n @param _l2OutputIndex Index of the first L2 output to be deleted.\n All outputs after this output will also be deleted."},"functionSelector":"89c44cbb","implemented":true,"kind":"function","modifiers":[],"name":"deleteL2Outputs","nameLocation":"6698:15:133","parameters":{"id":86125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86124,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"6722:14:133","nodeType":"VariableDeclaration","scope":86168,"src":"6714:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6713:24:133"},"returnParameters":{"id":86126,"nodeType":"ParameterList","parameters":[],"src":"6747:0:133"},"scope":86435,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86261,"nodeType":"FunctionDefinition","src":"8258:1981:133","nodes":[],"body":{"id":86260,"nodeType":"Block","src":"8449:1790:133","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86181,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8467:3:133","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8467:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86183,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85959,"src":"8481:8:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8467:22:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a206f6e6c79207468652070726f706f73657220616464726573732063616e2070726f706f7365206e6577206f757470757473","id":86185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8491:67:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1c67e2dc62ce3502755d353f72e304832f39c730ef77e02614e374f1fb53d3","typeString":"literal_string \"L2OutputOracle: only the proposer address can propose new outputs\""},"value":"L2OutputOracle: only the proposer address can propose new outputs"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f1c67e2dc62ce3502755d353f72e304832f39c730ef77e02614e374f1fb53d3","typeString":"literal_string \"L2OutputOracle: only the proposer address can propose new outputs\""}],"id":86180,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8459:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8459:100:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86187,"nodeType":"ExpressionStatement","src":"8459:100:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86189,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86173,"src":"8591:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":86190,"name":"nextBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86415,"src":"8609:15:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":86191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8609:17:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8591:35:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a20626c6f636b206e756d626572206d75737420626520657175616c20746f206e65787420657870656374656420626c6f636b206e756d626572","id":86193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8640:74:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_06e1bf88480451e9a05edd933fbefd888745eeb4cd60fea580144d9699d6c8c6","typeString":"literal_string \"L2OutputOracle: block number must be equal to next expected block number\""},"value":"L2OutputOracle: block number must be equal to next expected block number"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06e1bf88480451e9a05edd933fbefd888745eeb4cd60fea580144d9699d6c8c6","typeString":"literal_string \"L2OutputOracle: block number must be equal to next expected block number\""}],"id":86188,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8570:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8570:154:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86195,"nodeType":"ExpressionStatement","src":"8570:154:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":86198,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86173,"src":"8775:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86197,"name":"computeL2Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86434,"src":"8756:18:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":86199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:34:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":86200,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8793:5:133","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8793:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8756:52:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a2063616e6e6f742070726f706f7365204c32206f757470757420696e2074686520667574757265","id":86203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8822:56:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_398aa710210a226bac70935aec326d363ca55bd0968a10f188845909ad22cbc6","typeString":"literal_string \"L2OutputOracle: cannot propose L2 output in the future\""},"value":"L2OutputOracle: cannot propose L2 output in the future"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_398aa710210a226bac70935aec326d363ca55bd0968a10f188845909ad22cbc6","typeString":"literal_string \"L2OutputOracle: cannot propose L2 output in the future\""}],"id":86196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8735:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8735:153:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86205,"nodeType":"ExpressionStatement","src":"8735:153:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86207,"name":"_outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86171,"src":"8907:11:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":86210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8930:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8922:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":86208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8922:7:133","typeDescriptions":{}}},"id":86211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8922:10:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8907:25:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a204c32206f75747075742070726f706f73616c2063616e6e6f7420626520746865207a65726f2068617368","id":86213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8934:60:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd49586dceb93dcaff5457c4b7f965cdcdd796092fef31828e5d2ee522ee1ffa","typeString":"literal_string \"L2OutputOracle: L2 output proposal cannot be the zero hash\""},"value":"L2OutputOracle: L2 output proposal cannot be the zero hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd49586dceb93dcaff5457c4b7f965cdcdd796092fef31828e5d2ee522ee1ffa","typeString":"literal_string \"L2OutputOracle: L2 output proposal cannot be the zero hash\""}],"id":86206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8899:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8899:96:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86215,"nodeType":"ExpressionStatement","src":"8899:96:133"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86216,"name":"_l1BlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86175,"src":"9010:12:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":86219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9034:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9026:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":86217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9026:7:133","typeDescriptions":{}}},"id":86220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9026:10:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9010:26:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86232,"nodeType":"IfStatement","src":"9006:897:133","trueBody":{"id":86231,"nodeType":"Block","src":"9038:865:133","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":86224,"name":"_l1BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86177,"src":"9754:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86223,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"9744:9:133","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":86225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9744:25:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86226,"name":"_l1BlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86175,"src":"9773:12:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9744:41:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a20626c6f636b206861736820646f6573206e6f74206d617463682074686520686173682061742074686520657870656374656420686569676874","id":86228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:75:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_126a709d462b085b243904a4250a7244b58590dd3a6ba08b7c943ca19e9fb452","typeString":"literal_string \"L2OutputOracle: block hash does not match the hash at the expected height\""},"value":"L2OutputOracle: block hash does not match the hash at the expected height"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_126a709d462b085b243904a4250a7244b58590dd3a6ba08b7c943ca19e9fb452","typeString":"literal_string \"L2OutputOracle: block hash does not match the hash at the expected height\""}],"id":86222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9719:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9719:173:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86230,"nodeType":"ExpressionStatement","src":"9719:173:133"}]}},{"eventCall":{"arguments":[{"id":86234,"name":"_outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86171,"src":"9933:11:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86235,"name":"nextOutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86382,"src":"9946:15:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":86236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9946:17:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86237,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86173,"src":"9965:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":86238,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9981:5:133","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9981:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86233,"name":"OutputProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9918:14:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256)"}},"id":86240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9918:79:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86241,"nodeType":"EmitStatement","src":"9913:84:133"},{"expression":{"arguments":[{"arguments":[{"id":86247,"name":"_outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86171,"src":"10087:11:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":86250,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10135:5:133","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10135:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10127:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":86248,"name":"uint128","nodeType":"ElementaryTypeName","src":"10127:7:133","typeDescriptions":{}}},"id":86252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10127:24:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":86255,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86173,"src":"10192:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10184:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":86253,"name":"uint128","nodeType":"ElementaryTypeName","src":"10184:7:133","typeDescriptions":{}}},"id":86256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10184:23:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":86245,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"10036:5:133","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Types_$104349_$","typeString":"type(library Types)"}},"id":86246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"OutputProposal","nodeType":"MemberAccess","referencedDeclaration":104307,"src":"10036:20:133","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutputProposal_$104307_storage_ptr_$","typeString":"type(struct Types.OutputProposal storage pointer)"}},"id":86257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["outputRoot","timestamp","l2BlockNumber"],"nodeType":"FunctionCall","src":"10036:186:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}],"expression":{"id":86242,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"10008:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"10008:14:133","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage_ptr_$_t_struct$_OutputProposal_$104307_storage_$returns$__$bound_to$_t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage_ptr_$","typeString":"function (struct Types.OutputProposal storage ref[] storage pointer,struct Types.OutputProposal storage ref)"}},"id":86258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10008:224:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86259,"nodeType":"ExpressionStatement","src":"10008:224:133"}]},"documentation":{"id":86169,"nodeType":"StructuredDocumentation","src":"7670:583:133","text":"@notice Accepts an outputRoot and the timestamp of the corresponding L2 block.\n The timestamp must be equal to the current value returned by `nextTimestamp()` in\n order to be accepted. This function may only be called by the Proposer.\n @param _outputRoot The L2 output of the checkpoint block.\n @param _l2BlockNumber The L2 block number that resulted in _outputRoot.\n @param _l1BlockHash A block hash which must be included in the current chain.\n @param _l1BlockNumber The block number with the specified block hash."},"functionSelector":"9aaab648","implemented":true,"kind":"function","modifiers":[],"name":"proposeL2Output","nameLocation":"8267:15:133","parameters":{"id":86178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86171,"mutability":"mutable","name":"_outputRoot","nameLocation":"8300:11:133","nodeType":"VariableDeclaration","scope":86261,"src":"8292:19:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8292:7:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86173,"mutability":"mutable","name":"_l2BlockNumber","nameLocation":"8329:14:133","nodeType":"VariableDeclaration","scope":86261,"src":"8321:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86172,"name":"uint256","nodeType":"ElementaryTypeName","src":"8321:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86175,"mutability":"mutable","name":"_l1BlockHash","nameLocation":"8361:12:133","nodeType":"VariableDeclaration","scope":86261,"src":"8353:20:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8353:7:133","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86177,"mutability":"mutable","name":"_l1BlockNumber","nameLocation":"8391:14:133","nodeType":"VariableDeclaration","scope":86261,"src":"8383:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86176,"name":"uint256","nodeType":"ElementaryTypeName","src":"8383:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8282:129:133"},"returnParameters":{"id":86179,"nodeType":"ParameterList","parameters":[],"src":"8449:0:133"},"scope":86435,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":86275,"nodeType":"FunctionDefinition","src":"10443:146:133","nodes":[],"body":{"id":86274,"nodeType":"Block","src":"10540:49:133","nodes":[],"statements":[{"expression":{"baseExpression":{"id":86270,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"10557:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86272,"indexExpression":{"id":86271,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86264,"src":"10567:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10557:25:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage","typeString":"struct Types.OutputProposal storage ref"}},"functionReturnParameters":86269,"id":86273,"nodeType":"Return","src":"10550:32:133"}]},"documentation":{"id":86262,"nodeType":"StructuredDocumentation","src":"10245:193:133","text":"@notice Returns an output by index. Needed to return a struct instead of a tuple.\n @param _l2OutputIndex Index of the output to return.\n @return The output at the given index."},"functionSelector":"a25ae557","implemented":true,"kind":"function","modifiers":[],"name":"getL2Output","nameLocation":"10452:11:133","parameters":{"id":86265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86264,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"10472:14:133","nodeType":"VariableDeclaration","scope":86275,"src":"10464:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86263,"name":"uint256","nodeType":"ElementaryTypeName","src":"10464:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10463:24:133"},"returnParameters":{"id":86269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86275,"src":"10511:27:133","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal"},"typeName":{"id":86267,"nodeType":"UserDefinedTypeName","pathNode":{"id":86266,"name":"Types.OutputProposal","nodeType":"IdentifierPath","referencedDeclaration":104307,"src":"10511:20:133"},"referencedDeclaration":104307,"src":"10511:20:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage_ptr","typeString":"struct Types.OutputProposal"}},"visibility":"internal"}],"src":"10510:29:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86344,"nodeType":"FunctionDefinition","src":"10969:896:133","nodes":[],"body":{"id":86343,"nodeType":"Block","src":"11054:811:133","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86284,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86278,"src":"11166:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":86285,"name":"latestBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86403,"src":"11184:17:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":86286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11184:19:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11166:37:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a2063616e6e6f7420676574206f757470757420666f72206120626c6f636b207468617420686173206e6f74206265656e2070726f706f736564","id":86288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11217:74:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_e20eea09cda66a0de8aaee9225052cff8973e85b47dc903dda82ca1d2f5e4f1e","typeString":"literal_string \"L2OutputOracle: cannot get output for a block that has not been proposed\""},"value":"L2OutputOracle: cannot get output for a block that has not been proposed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e20eea09cda66a0de8aaee9225052cff8973e85b47dc903dda82ca1d2f5e4f1e","typeString":"literal_string \"L2OutputOracle: cannot get output for a block that has not been proposed\""}],"id":86283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11145:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11145:156:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86290,"nodeType":"ExpressionStatement","src":"11145:156:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86292,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"11379:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11379:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":86294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11398:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11379:20:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707574206173206e6f206f7574707574732068617665206265656e2070726f706f73656420796574","id":86296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11401:72:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_80c3451a3ec9750ebb6fb31ae69a5869a904e947867f132ba63cfb294c03b73e","typeString":"literal_string \"L2OutputOracle: cannot get output as no outputs have been proposed yet\""},"value":"L2OutputOracle: cannot get output as no outputs have been proposed yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_80c3451a3ec9750ebb6fb31ae69a5869a904e947867f132ba63cfb294c03b73e","typeString":"literal_string \"L2OutputOracle: cannot get output as no outputs have been proposed yet\""}],"id":86291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11371:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:103:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86298,"nodeType":"ExpressionStatement","src":"11371:103:133"},{"assignments":[86300],"declarations":[{"constant":false,"id":86300,"mutability":"mutable","name":"lo","nameLocation":"11560:2:133","nodeType":"VariableDeclaration","scope":86343,"src":"11552:10:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86299,"name":"uint256","nodeType":"ElementaryTypeName","src":"11552:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86302,"initialValue":{"hexValue":"30","id":86301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11565:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11552:14:133"},{"assignments":[86304],"declarations":[{"constant":false,"id":86304,"mutability":"mutable","name":"hi","nameLocation":"11584:2:133","nodeType":"VariableDeclaration","scope":86343,"src":"11576:10:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86303,"name":"uint256","nodeType":"ElementaryTypeName","src":"11576:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86307,"initialValue":{"expression":{"id":86305,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"11589:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11589:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11576:29:133"},{"body":{"id":86339,"nodeType":"Block","src":"11631:208:133","statements":[{"assignments":[86312],"declarations":[{"constant":false,"id":86312,"mutability":"mutable","name":"mid","nameLocation":"11653:3:133","nodeType":"VariableDeclaration","scope":86339,"src":"11645:11:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86311,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86319,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86313,"name":"lo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"11660:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":86314,"name":"hi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86304,"src":"11665:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11660:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":86316,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11659:9:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":86317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11671:1:133","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11659:13:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:27:133"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":86320,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"11690:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86322,"indexExpression":{"id":86321,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86312,"src":"11700:3:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11690:14:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage","typeString":"struct Types.OutputProposal storage ref"}},"id":86323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2BlockNumber","nodeType":"MemberAccess","referencedDeclaration":104306,"src":"11690:28:133","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86324,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86278,"src":"11721:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11690:45:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86337,"nodeType":"Block","src":"11788:41:133","statements":[{"expression":{"id":86335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86333,"name":"hi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86304,"src":"11806:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86334,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86312,"src":"11811:3:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11806:8:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86336,"nodeType":"ExpressionStatement","src":"11806:8:133"}]},"id":86338,"nodeType":"IfStatement","src":"11686:143:133","trueBody":{"id":86332,"nodeType":"Block","src":"11737:45:133","statements":[{"expression":{"id":86330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86326,"name":"lo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"11755:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86327,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86312,"src":"11760:3:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":86328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11766:1:133","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11760:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11755:12:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86331,"nodeType":"ExpressionStatement","src":"11755:12:133"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86308,"name":"lo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"11622:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86309,"name":"hi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86304,"src":"11627:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11622:7:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86340,"nodeType":"WhileStatement","src":"11615:224:133"},{"expression":{"id":86341,"name":"lo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"11856:2:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86282,"id":86342,"nodeType":"Return","src":"11849:9:133"}]},"documentation":{"id":86276,"nodeType":"StructuredDocumentation","src":"10595:369:133","text":"@notice Returns the index of the L2 output that checkpoints a given L2 block number.\n Uses a binary search to find the first output greater than or equal to the given\n block.\n @param _l2BlockNumber L2 block number to find a checkpoint for.\n @return Index of the first checkpoint that commits to the given L2 block number."},"functionSelector":"7f006420","implemented":true,"kind":"function","modifiers":[],"name":"getL2OutputIndexAfter","nameLocation":"10978:21:133","parameters":{"id":86279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86278,"mutability":"mutable","name":"_l2BlockNumber","nameLocation":"11008:14:133","nodeType":"VariableDeclaration","scope":86344,"src":"11000:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86277,"name":"uint256","nodeType":"ElementaryTypeName","src":"11000:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10999:24:133"},"returnParameters":{"id":86282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86344,"src":"11045:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11045:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11044:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86360,"nodeType":"FunctionDefinition","src":"12228:174:133","nodes":[],"body":{"id":86359,"nodeType":"Block","src":"12330:72:133","nodes":[],"statements":[{"expression":{"baseExpression":{"id":86353,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"12347:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86357,"indexExpression":{"arguments":[{"id":86355,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86347,"src":"12379:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86354,"name":"getL2OutputIndexAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86344,"src":"12357:21:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":86356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12357:37:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12347:48:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage","typeString":"struct Types.OutputProposal storage ref"}},"functionReturnParameters":86352,"id":86358,"nodeType":"Return","src":"12340:55:133"}]},"documentation":{"id":86345,"nodeType":"StructuredDocumentation","src":"11871:352:133","text":"@notice Returns the L2 output proposal that checkpoints a given L2 block number.\n Uses a binary search to find the first output greater than or equal to the given\n block.\n @param _l2BlockNumber L2 block number to find a checkpoint for.\n @return First checkpoint that commits to the given L2 block number."},"functionSelector":"cf8e5cf0","implemented":true,"kind":"function","modifiers":[],"name":"getL2OutputAfter","nameLocation":"12237:16:133","parameters":{"id":86348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86347,"mutability":"mutable","name":"_l2BlockNumber","nameLocation":"12262:14:133","nodeType":"VariableDeclaration","scope":86360,"src":"12254:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86346,"name":"uint256","nodeType":"ElementaryTypeName","src":"12254:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12253:24:133"},"returnParameters":{"id":86352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86360,"src":"12301:27:133","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal"},"typeName":{"id":86350,"nodeType":"UserDefinedTypeName","pathNode":{"id":86349,"name":"Types.OutputProposal","nodeType":"IdentifierPath","referencedDeclaration":104307,"src":"12301:20:133"},"referencedDeclaration":104307,"src":"12301:20:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage_ptr","typeString":"struct Types.OutputProposal"}},"visibility":"internal"}],"src":"12300:29:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86372,"nodeType":"FunctionDefinition","src":"12608:105:133","nodes":[],"body":{"id":86371,"nodeType":"Block","src":"12669:44:133","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86366,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"12686:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12686:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":86368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:133","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12686:20:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86365,"id":86370,"nodeType":"Return","src":"12679:27:133"}]},"documentation":{"id":86361,"nodeType":"StructuredDocumentation","src":"12408:195:133","text":"@notice Returns the number of outputs that have been proposed.\n Will revert if no outputs have been proposed yet.\n @return The number of outputs that have been proposed."},"functionSelector":"69f16eec","implemented":true,"kind":"function","modifiers":[],"name":"latestOutputIndex","nameLocation":"12617:17:133","parameters":{"id":86362,"nodeType":"ParameterList","parameters":[],"src":"12634:2:133"},"returnParameters":{"id":86365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86372,"src":"12660:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86363,"name":"uint256","nodeType":"ElementaryTypeName","src":"12660:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12659:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":86382,"nodeType":"FunctionDefinition","src":"12849:97:133","nodes":[],"body":{"id":86381,"nodeType":"Block","src":"12906:40:133","nodes":[],"statements":[{"expression":{"expression":{"id":86378,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"12923:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12923:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86377,"id":86380,"nodeType":"Return","src":"12916:23:133"}]},"documentation":{"id":86373,"nodeType":"StructuredDocumentation","src":"12719:125:133","text":"@notice Returns the index of the next output to be proposed.\n @return The index of the next output to be proposed."},"functionSelector":"6abcf563","implemented":true,"kind":"function","modifiers":[],"name":"nextOutputIndex","nameLocation":"12858:15:133","parameters":{"id":86374,"nodeType":"ParameterList","parameters":[],"src":"12873:2:133"},"returnParameters":{"id":86377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86382,"src":"12897:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86375,"name":"uint256","nodeType":"ElementaryTypeName","src":"12897:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12896:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86403,"nodeType":"FunctionDefinition","src":"13212:174:133","nodes":[],"body":{"id":86402,"nodeType":"Block","src":"13271:115:133","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86388,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"13288:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13288:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":86390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13308:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13288:21:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"baseExpression":{"id":86393,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"13334:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86398,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86394,"name":"l2Outputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85947,"src":"13344:9:133","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutputProposal_$104307_storage_$dyn_storage","typeString":"struct Types.OutputProposal storage ref[] storage ref"}},"id":86395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13344:16:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":86396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13363:1:133","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13344:20:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13334:31:133","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage","typeString":"struct Types.OutputProposal storage ref"}},"id":86399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2BlockNumber","nodeType":"MemberAccess","referencedDeclaration":104306,"src":"13334:45:133","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":86400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13288:91:133","trueExpression":{"id":86392,"name":"startingBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85939,"src":"13312:19:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86387,"id":86401,"nodeType":"Return","src":"13281:98:133"}]},"documentation":{"id":86383,"nodeType":"StructuredDocumentation","src":"12952:255:133","text":"@notice Returns the block number of the latest submitted L2 output proposal.\n If no proposals been submitted yet then this function will return the starting\n block number.\n @return Latest submitted L2 block number."},"functionSelector":"4599c788","implemented":true,"kind":"function","modifiers":[],"name":"latestBlockNumber","nameLocation":"13221:17:133","parameters":{"id":86384,"nodeType":"ParameterList","parameters":[],"src":"13238:2:133"},"returnParameters":{"id":86387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86403,"src":"13262:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86385,"name":"uint256","nodeType":"ElementaryTypeName","src":"13262:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13261:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86415,"nodeType":"FunctionDefinition","src":"13524:121:133","nodes":[],"body":{"id":86414,"nodeType":"Block","src":"13581:64:133","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":86409,"name":"latestBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86403,"src":"13598:17:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":86410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13598:19:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":86411,"name":"submissionInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85950,"src":"13620:18:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13598:40:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86408,"id":86413,"nodeType":"Return","src":"13591:47:133"}]},"documentation":{"id":86404,"nodeType":"StructuredDocumentation","src":"13392:127:133","text":"@notice Computes the block number of the next L2 block that needs to be checkpointed.\n @return Next L2 block number."},"functionSelector":"dcec3348","implemented":true,"kind":"function","modifiers":[],"name":"nextBlockNumber","nameLocation":"13533:15:133","parameters":{"id":86405,"nodeType":"ParameterList","parameters":[],"src":"13548:2:133"},"returnParameters":{"id":86408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86415,"src":"13572:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86406,"name":"uint256","nodeType":"ElementaryTypeName","src":"13572:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13571:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86434,"nodeType":"FunctionDefinition","src":"13854:180:133","nodes":[],"body":{"id":86433,"nodeType":"Block","src":"13936:98:133","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86423,"name":"startingTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85942,"src":"13953:17:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86424,"name":"_l2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86418,"src":"13975:14:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":86425,"name":"startingBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85939,"src":"13992:19:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13975:36:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":86427,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13974:38:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":86428,"name":"l2BlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85953,"src":"14015:11:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13974:52:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":86430,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13973:54:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13953:74:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86422,"id":86432,"nodeType":"Return","src":"13946:81:133"}]},"documentation":{"id":86416,"nodeType":"StructuredDocumentation","src":"13651:198:133","text":"@notice Returns the L2 timestamp corresponding to a given L2 block number.\n @param _l2BlockNumber The L2 block number of the target block.\n @return L2 timestamp of the given block."},"functionSelector":"d1de856c","implemented":true,"kind":"function","modifiers":[],"name":"computeL2Timestamp","nameLocation":"13863:18:133","parameters":{"id":86419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86418,"mutability":"mutable","name":"_l2BlockNumber","nameLocation":"13890:14:133","nodeType":"VariableDeclaration","scope":86434,"src":"13882:22:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86417,"name":"uint256","nodeType":"ElementaryTypeName","src":"13882:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13881:24:133"},"returnParameters":{"id":86422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86434,"src":"13927:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86420,"name":"uint256","nodeType":"ElementaryTypeName","src":"13927:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13926:9:133"},"scope":86435,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":85933,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":49678,"src":"638:13:133"},"id":85934,"nodeType":"InheritanceSpecifier","src":"638:13:133"},{"baseName":{"id":85935,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"653:7:133"},"id":85936,"nodeType":"InheritanceSpecifier","src":"653:7:133"}],"canonicalName":"L2OutputOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":85932,"nodeType":"StructuredDocumentation","src":"304:307:133","text":"@custom:proxied\n @title L2OutputOracle\n @notice The L2OutputOracle contains an array of L2 state outputs, where each output is a\n commitment to the state of the L2 chain. Other contracts like the OptimismPortal use\n these outputs to verify information about the state of L2."},"fullyImplemented":true,"linearizedBaseContracts":[86435,109417,49678],"name":"L2OutputOracle","nameLocation":"620:14:133","scope":86436,"usedErrors":[]}],"license":"MIT"},"id":133} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L2StandardBridge.json b/packages/sdk/src/forge-artifacts/L2StandardBridge.json new file mode 100644 index 000000000000..3e707fe88b52 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L2StandardBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC20To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeETH","inputs":[{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"bridgeETHTo","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"finalizeDeposit","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"initialize","inputs":[{"name":"_otherBridge","type":"address","internalType":"contract StandardBridge"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1TokenBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"DepositFinalized","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHBridgeFinalized","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ETHBridgeInitiated","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"WithdrawalInitiated","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000217565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016d60201b620004811760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b62000122734200000000000000000000000000000000000007836200017c565b801562000169576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b612a8380620002276000396000f3fe60806040526004361061012d5760003560e01c8063662a633a116100a5578063927ede2d11610074578063c4d66de811610059578063c4d66de814610421578063c89701a214610441578063e11013dd1461046e57600080fd5b8063927ede2d146103e3578063a3a795481461040e57600080fd5b8063662a633a1461036a5780637f46ddb21461025a578063870876231461037d5780638f601f661461039d57600080fd5b806336c717c1116100fc578063540abf73116100e1578063540abf73146102d857806354fd4d50146102f85780635c975abb1461034e57600080fd5b806336c717c11461025a5780633cb747bf146102ab57600080fd5b80630166a07a1461020157806309fc8843146102215780631635f5fd1461023457806332b7006d1461024757600080fd5b366101fc57333b156101c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101fa73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061049d565b005b600080fd5b34801561020d57600080fd5b506101fa61021c366004612476565b610578565b6101fa61022f366004612527565b61091a565b6101fa61024236600461257a565b6109f1565b6101fa6102553660046125ed565b610e43565b34801561026657600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102b757600080fd5b506003546102819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102e457600080fd5b506101fa6102f3366004612641565b610f1d565b34801561030457600080fd5b506103416040518060400160405280600581526020017f312e382e3000000000000000000000000000000000000000000000000000000081525081565b6040516102a2919061272e565b34801561035a57600080fd5b50604051600081526020016102a2565b6101fa610378366004612476565b610f62565b34801561038957600080fd5b506101fa610398366004612741565b610fd5565b3480156103a957600080fd5b506103d56103b83660046127c4565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102a2565b3480156103ef57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff16610281565b6101fa61041c366004612741565b6110a9565b34801561042d57600080fd5b506101fa61043c3660046127fd565b6110ed565b34801561044d57600080fd5b506004546102819073ffffffffffffffffffffffffffffffffffffffff1681565b6101fa61047c36600461281a565b611296565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104ec576104e785858585856112df565b610570565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061287d565b905061056e878288888888886114a9565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314801561064b575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610633919061287d565b73ffffffffffffffffffffffffffffffffffffffff16145b6106fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101bd565b610706876117d4565b15610854576107158787611836565b6107c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101bd565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050506108d6565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546108929084906128c9565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556108d6908585611956565b61056e878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a2a92505050565b333b156109a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b6109ec3333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112df92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610ac4575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac919061287d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101bd565b823414610c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101bd565b3073ffffffffffffffffffffffffffffffffffffffff851603610caa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101bd565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101bd565b610d9785858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ab892505050565b6000610db4855a8660405180602001604052806000815250611b59565b905080610570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101bd565b333b15610ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b610f16853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b5050505050565b61056e87873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a992505050565b73ffffffffffffffffffffffffffffffffffffffff8716158015610faf575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b15610fc657610fc185858585856109f1565b61056e565b61056e86888787878787610578565b333b15611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b61057086863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a992505050565b610570863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b600054610100900460ff161580801561110d5750600054600160ff909116105b806111275750303b158015611127575060005460ff166001145b6111b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101bd565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561121157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61122f73420000000000000000000000000000000000000783611b73565b801561129257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6112d93385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112df92505050565b50505050565b82341461136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101bd565b61137a85858584611c5d565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd00000000000000000000000000000000000000000000000000000000906113dd908b908b9086908a906024016128e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261147092918890600401612929565b6000604051808303818588803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b50505050505050505050565b6114b2876117d4565b15611600576114c18787611836565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101bd565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b50505050611694565b61162273ffffffffffffffffffffffffffffffffffffffff8816863086611cfe565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a168352929052205461166090849061296e565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116a2878787878786611d5c565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a0000000000000000000000000000000000000000000000000000000090611706908b908d908c908c908c908b90602401612986565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261179992918790600401612929565b600060405180830381600087803b1580156117b357600080fd5b505af11580156117c7573d6000803e3d6000fd5b5050505050505050505050565b6000611800827f1d1d8b6300000000000000000000000000000000000000000000000000000000611dea565b806118305750611830827fec4fc8e300000000000000000000000000000000000000000000000000000000611dea565b92915050565b6000611862837f1d1d8b6300000000000000000000000000000000000000000000000000000000611dea565b1561190b578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d6919061287d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611830565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b2573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109ec9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e0d565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611aa2939291906129e1565b60405180910390a4610570868686868686611f19565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b45939291906129e1565b60405180910390a46112d984848484611fa1565b600080600080845160208601878a8af19695505050505050565b600054610100900460ff16611c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101bd565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611cea939291906129e1565b60405180910390a46112d98484848461200e565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112d99085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119a8565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dd4939291906129e1565b60405180910390a461057086868686868661206d565b6000611df5836120e5565b8015611e065750611e068383612149565b9392505050565b6000611e6f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122189092919063ffffffff16565b8051909150156109ec5780806020019051810190611e8d9190612a1f565b6109ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101bd565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f91939291906129e1565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612000929190612a41565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612000929190612a41565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f91939291906129e1565b6000612111827f01ffc9a700000000000000000000000000000000000000000000000000000000612149565b80156118305750612142827fffffffff00000000000000000000000000000000000000000000000000000000612149565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612201575060208210155b801561220d5750600081115b979650505050505050565b6060612227848460008561222f565b949350505050565b6060824710156122c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101bd565b73ffffffffffffffffffffffffffffffffffffffff85163b61233f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101bd565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123689190612a5a565b60006040518083038185875af1925050503d80600081146123a5576040519150601f19603f3d011682016040523d82523d6000602084013e6123aa565b606091505b509150915061220d828286606083156123c4575081611e06565b8251156123d45782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bd919061272e565b73ffffffffffffffffffffffffffffffffffffffff8116811461242a57600080fd5b50565b60008083601f84011261243f57600080fd5b50813567ffffffffffffffff81111561245757600080fd5b60208301915083602082850101111561246f57600080fd5b9250929050565b600080600080600080600060c0888a03121561249157600080fd5b873561249c81612408565b965060208801356124ac81612408565b955060408801356124bc81612408565b945060608801356124cc81612408565b93506080880135925060a088013567ffffffffffffffff8111156124ef57600080fd5b6124fb8a828b0161242d565b989b979a50959850939692959293505050565b803563ffffffff8116811461252257600080fd5b919050565b60008060006040848603121561253c57600080fd5b6125458461250e565b9250602084013567ffffffffffffffff81111561256157600080fd5b61256d8682870161242d565b9497909650939450505050565b60008060008060006080868803121561259257600080fd5b853561259d81612408565b945060208601356125ad81612408565b935060408601359250606086013567ffffffffffffffff8111156125d057600080fd5b6125dc8882890161242d565b969995985093965092949392505050565b60008060008060006080868803121561260557600080fd5b853561261081612408565b9450602086013593506126256040870161250e565b9250606086013567ffffffffffffffff8111156125d057600080fd5b600080600080600080600060c0888a03121561265c57600080fd5b873561266781612408565b9650602088013561267781612408565b9550604088013561268781612408565b94506060880135935061269c6080890161250e565b925060a088013567ffffffffffffffff8111156124ef57600080fd5b60005b838110156126d35781810151838201526020016126bb565b838111156112d95750506000910152565b600081518084526126fc8160208601602086016126b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e0660208301846126e4565b60008060008060008060a0878903121561275a57600080fd5b863561276581612408565b9550602087013561277581612408565b94506040870135935061278a6060880161250e565b9250608087013567ffffffffffffffff8111156127a657600080fd5b6127b289828a0161242d565b979a9699509497509295939492505050565b600080604083850312156127d757600080fd5b82356127e281612408565b915060208301356127f281612408565b809150509250929050565b60006020828403121561280f57600080fd5b8135611e0681612408565b6000806000806060858703121561283057600080fd5b843561283b81612408565b93506128496020860161250e565b9250604085013567ffffffffffffffff81111561286557600080fd5b6128718782880161242d565b95989497509550505050565b60006020828403121561288f57600080fd5b8151611e0681612408565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156128db576128db61289a565b500390565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261291f60808301846126e4565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600061295860608301856126e4565b905063ffffffff83166040830152949350505050565b600082198211156129815761298161289a565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526129d560c08301846126e4565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a1660608301846126e4565b95945050505050565b600060208284031215612a3157600080fd5b81518015158114611e0657600080fd5b82815260406020820152600061222760408301846126e4565b60008251612a6c8184602087016126b8565b919091019291505056fea164736f6c634300080f000a","sourceMap":"1141:9307:149:-:0;;;2615:113;;;;;;;;;-1:-1:-1;2656:65:149::1;2714:1;2656:10;:65::i;:::-;1141:9307:::0;;2849:242;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;2927:157:149::1;480:42:199;3061:12:149::0;2927:21:::1;:157::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;2849:242:149;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;5373:236:235:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;5544:9:235::1;:22:::0;;-1:-1:-1;;;;;5544:22:235;;::::1;-1:-1:-1::0;;;;;;5544:22:235;;::::1;;::::0;;;5576:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;5373:236::o;628:407:357:-;1141:9307:149;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061012d5760003560e01c8063662a633a116100a5578063927ede2d11610074578063c4d66de811610059578063c4d66de814610421578063c89701a214610441578063e11013dd1461046e57600080fd5b8063927ede2d146103e3578063a3a795481461040e57600080fd5b8063662a633a1461036a5780637f46ddb21461025a578063870876231461037d5780638f601f661461039d57600080fd5b806336c717c1116100fc578063540abf73116100e1578063540abf73146102d857806354fd4d50146102f85780635c975abb1461034e57600080fd5b806336c717c11461025a5780633cb747bf146102ab57600080fd5b80630166a07a1461020157806309fc8843146102215780631635f5fd1461023457806332b7006d1461024757600080fd5b366101fc57333b156101c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101fa73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061049d565b005b600080fd5b34801561020d57600080fd5b506101fa61021c366004612476565b610578565b6101fa61022f366004612527565b61091a565b6101fa61024236600461257a565b6109f1565b6101fa6102553660046125ed565b610e43565b34801561026657600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102b757600080fd5b506003546102819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102e457600080fd5b506101fa6102f3366004612641565b610f1d565b34801561030457600080fd5b506103416040518060400160405280600581526020017f312e382e3000000000000000000000000000000000000000000000000000000081525081565b6040516102a2919061272e565b34801561035a57600080fd5b50604051600081526020016102a2565b6101fa610378366004612476565b610f62565b34801561038957600080fd5b506101fa610398366004612741565b610fd5565b3480156103a957600080fd5b506103d56103b83660046127c4565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102a2565b3480156103ef57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff16610281565b6101fa61041c366004612741565b6110a9565b34801561042d57600080fd5b506101fa61043c3660046127fd565b6110ed565b34801561044d57600080fd5b506004546102819073ffffffffffffffffffffffffffffffffffffffff1681565b6101fa61047c36600461281a565b611296565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104ec576104e785858585856112df565b610570565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061287d565b905061056e878288888888886114a9565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314801561064b575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610633919061287d565b73ffffffffffffffffffffffffffffffffffffffff16145b6106fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101bd565b610706876117d4565b15610854576107158787611836565b6107c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101bd565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050506108d6565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546108929084906128c9565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556108d6908585611956565b61056e878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a2a92505050565b333b156109a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b6109ec3333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112df92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610ac4575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac919061287d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101bd565b823414610c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101bd565b3073ffffffffffffffffffffffffffffffffffffffff851603610caa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101bd565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101bd565b610d9785858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ab892505050565b6000610db4855a8660405180602001604052806000815250611b59565b905080610570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101bd565b333b15610ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b610f16853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b5050505050565b61056e87873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a992505050565b73ffffffffffffffffffffffffffffffffffffffff8716158015610faf575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b15610fc657610fc185858585856109f1565b61056e565b61056e86888787878787610578565b333b15611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101bd565b61057086863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a992505050565b610570863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b600054610100900460ff161580801561110d5750600054600160ff909116105b806111275750303b158015611127575060005460ff166001145b6111b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101bd565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561121157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61122f73420000000000000000000000000000000000000783611b73565b801561129257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6112d93385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112df92505050565b50505050565b82341461136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101bd565b61137a85858584611c5d565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd00000000000000000000000000000000000000000000000000000000906113dd908b908b9086908a906024016128e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261147092918890600401612929565b6000604051808303818588803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b50505050505050505050565b6114b2876117d4565b15611600576114c18787611836565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101bd565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b50505050611694565b61162273ffffffffffffffffffffffffffffffffffffffff8816863086611cfe565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a168352929052205461166090849061296e565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116a2878787878786611d5c565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a0000000000000000000000000000000000000000000000000000000090611706908b908d908c908c908c908b90602401612986565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261179992918790600401612929565b600060405180830381600087803b1580156117b357600080fd5b505af11580156117c7573d6000803e3d6000fd5b5050505050505050505050565b6000611800827f1d1d8b6300000000000000000000000000000000000000000000000000000000611dea565b806118305750611830827fec4fc8e300000000000000000000000000000000000000000000000000000000611dea565b92915050565b6000611862837f1d1d8b6300000000000000000000000000000000000000000000000000000000611dea565b1561190b578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d6919061287d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611830565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b2573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109ec9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e0d565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611aa2939291906129e1565b60405180910390a4610570868686868686611f19565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b45939291906129e1565b60405180910390a46112d984848484611fa1565b600080600080845160208601878a8af19695505050505050565b600054610100900460ff16611c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101bd565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611cea939291906129e1565b60405180910390a46112d98484848461200e565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112d99085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119a8565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dd4939291906129e1565b60405180910390a461057086868686868661206d565b6000611df5836120e5565b8015611e065750611e068383612149565b9392505050565b6000611e6f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122189092919063ffffffff16565b8051909150156109ec5780806020019051810190611e8d9190612a1f565b6109ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101bd565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f91939291906129e1565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612000929190612a41565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612000929190612a41565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f91939291906129e1565b6000612111827f01ffc9a700000000000000000000000000000000000000000000000000000000612149565b80156118305750612142827fffffffff00000000000000000000000000000000000000000000000000000000612149565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612201575060208210155b801561220d5750600081115b979650505050505050565b6060612227848460008561222f565b949350505050565b6060824710156122c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101bd565b73ffffffffffffffffffffffffffffffffffffffff85163b61233f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101bd565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123689190612a5a565b60006040518083038185875af1925050503d80600081146123a5576040519150601f19603f3d011682016040523d82523d6000602084013e6123aa565b606091505b509150915061220d828286606083156123c4575081611e06565b8251156123d45782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bd919061272e565b73ffffffffffffffffffffffffffffffffffffffff8116811461242a57600080fd5b50565b60008083601f84011261243f57600080fd5b50813567ffffffffffffffff81111561245757600080fd5b60208301915083602082850101111561246f57600080fd5b9250929050565b600080600080600080600060c0888a03121561249157600080fd5b873561249c81612408565b965060208801356124ac81612408565b955060408801356124bc81612408565b945060608801356124cc81612408565b93506080880135925060a088013567ffffffffffffffff8111156124ef57600080fd5b6124fb8a828b0161242d565b989b979a50959850939692959293505050565b803563ffffffff8116811461252257600080fd5b919050565b60008060006040848603121561253c57600080fd5b6125458461250e565b9250602084013567ffffffffffffffff81111561256157600080fd5b61256d8682870161242d565b9497909650939450505050565b60008060008060006080868803121561259257600080fd5b853561259d81612408565b945060208601356125ad81612408565b935060408601359250606086013567ffffffffffffffff8111156125d057600080fd5b6125dc8882890161242d565b969995985093965092949392505050565b60008060008060006080868803121561260557600080fd5b853561261081612408565b9450602086013593506126256040870161250e565b9250606086013567ffffffffffffffff8111156125d057600080fd5b600080600080600080600060c0888a03121561265c57600080fd5b873561266781612408565b9650602088013561267781612408565b9550604088013561268781612408565b94506060880135935061269c6080890161250e565b925060a088013567ffffffffffffffff8111156124ef57600080fd5b60005b838110156126d35781810151838201526020016126bb565b838111156112d95750506000910152565b600081518084526126fc8160208601602086016126b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e0660208301846126e4565b60008060008060008060a0878903121561275a57600080fd5b863561276581612408565b9550602087013561277581612408565b94506040870135935061278a6060880161250e565b9250608087013567ffffffffffffffff8111156127a657600080fd5b6127b289828a0161242d565b979a9699509497509295939492505050565b600080604083850312156127d757600080fd5b82356127e281612408565b915060208301356127f281612408565b809150509250929050565b60006020828403121561280f57600080fd5b8135611e0681612408565b6000806000806060858703121561283057600080fd5b843561283b81612408565b93506128496020860161250e565b9250604085013567ffffffffffffffff81111561286557600080fd5b6128718782880161242d565b95989497509550505050565b60006020828403121561288f57600080fd5b8151611e0681612408565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156128db576128db61289a565b500390565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261291f60808301846126e4565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600061295860608301856126e4565b905063ffffffff83166040830152949350505050565b600082198211156129815761298161289a565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526129d560c08301846126e4565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a1660608301846126e4565b95945050505050565b600060208284031215612a3157600080fd5b81518015158114611e0657600080fd5b82815260406020820152600061222760408301846126e4565b60008251612a6c8184602087016126b8565b919091019291505056fea164736f6c634300080f000a","sourceMap":"1141:9307:149:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4741:10:235;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;;;;;;;;;3228:143:149::1;2708:42:199;3290:10:149;3302;3314:9;1343:7:235;3352:9:149;;;;;;;;;;;::::0;3228:19:::1;:143::i;:::-;1141:9307:::0;;;;;12867:1084:235;;;;;;;;;;-1:-1:-1;12867:1084:235;;;;;:::i;:::-;;:::i;7253:186::-;;;;;;:::i;:::-;;:::i;11233:902::-;;;;;;:::i;:::-;;:::i;3897:313:149:-;;;;;;:::i;:::-;;:::i;6764:101::-;;;;;;;;;;-1:-1:-1;6846:11:149;;;;6764:101;;;4271:42:357;4259:55;;;4241:74;;4229:2;4214:18;6764:101:149;;;;;;;;1893:37:235;;;;;;;;;;-1:-1:-1;1893:37:235;;;;;;;;10320:349;;;;;;;;;;-1:-1:-1;10320:349:235;;;;;:::i;:::-;;:::i;2510:40:149:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6750:82:235:-;;;;;;;;;;-1:-1:-1;6750:82:235;;6797:4;6512:41:357;;6500:2;6485:18;6750:82:235;6372:187:357;6087:505:149;;;;;;:::i;:::-;;:::i;9277:349:235:-;;;;;;;;;;-1:-1:-1;9277:349:235;;;;;:::i;:::-;;:::i;1739:63::-;;;;;;;;;;-1:-1:-1;1739:63:235;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;8199:25:357;;;8187:2;8172:18;1739:63:235;8053:177:357;6024:99:235;;;;;;;;;;-1:-1:-1;6107:9:235;;;;6024:99;;5197:313:149;;;;;;:::i;:::-;;:::i;2849:242::-;;;;;;;;;;-1:-1:-1;2849:242:149;;;;;:::i;:::-;;:::i;2028:33:235:-;;;;;;;;;;-1:-1:-1;2028:33:235;;;;;;;;8450:186;;;;;;:::i;:::-;;:::i;1175:320:59:-;1465:19;;;:23;;;1175:320::o;7372:554:149:-;7599:39;;;;;7595:325;;7654:65;7673:5;7680:3;7685:7;7694:12;7708:10;7654:18;:65::i;:::-;7595:325;;;7750:15;7790:8;7768:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7750:59;;7823:86;7844:8;7854:7;7863:5;7870:3;7875:7;7884:12;7898:10;7823:20;:86::i;:::-;7736:184;7595:325;7372:554;;;;;;:::o;12867:1084:235:-;5004:9;;;;4982:10;:32;:92;;;;-1:-1:-1;5062:11:235;;;5018:9;;:32;;;;;;;;5062:11;;;;;5018:9;;;;;:30;;:32;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;4982:92;4961:204;;;;;;;9591:2:357;4961:204:235;;;9573:21:357;9630:2;9610:18;;;9603:30;9669:34;9649:18;;;9642:62;9740:34;9720:18;;;9713:62;9812:3;9791:19;;;9784:32;9833:19;;4961:204:235;9389:469:357;4961:204:235;13184:37:::1;13209:11;13184:24;:37::i;:::-;13180:489;;;13262:46;13282:11;13295:12;13262:19;:46::i;:::-;13237:179;;;::::0;::::1;::::0;;10416:2:357;13237:179:235::1;::::0;::::1;10398:21:357::0;10455:2;10435:18;;;10428:30;10494:34;10474:18;;;10467:62;10565:34;10545:18;;;10538:62;10637:12;10616:19;;;10609:41;10667:19;;13237:179:235::1;10214:478:357::0;13237:179:235::1;13431:53;::::0;;;;:39:::1;10889:55:357::0;;;13431:53:235::1;::::0;::::1;10871:74:357::0;10961:18;;;10954:34;;;13431:39:235;::::1;::::0;::::1;::::0;10844:18:357;;13431:53:235::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13180:489;;;13553:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;:45:::1;::::0;13591:7;;13553:45:::1;:::i;:::-;13515:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;;:83;;;;13612:46:::1;::::0;13645:3;13650:7;13612:32:::1;:46::i;:::-;13859:85;13885:11;13898:12;13912:5;13919:3;13924:7;13933:10;;13859:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;13859:25:235::1;::::0;-1:-1:-1;;;13859:85:235:i:1;7253:186::-:0;4741:10;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;7353:79:::1;7372:10;7384;7396:9;7407:12;7421:10;;7353:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7353:18:235::1;::::0;-1:-1:-1;;;7353:79:235:i:1;:::-;7253:186:::0;;;:::o;11233:902::-;5004:9;;;;4982:10;:32;:92;;;;-1:-1:-1;5062:11:235;;;5018:9;;:32;;;;;;;;5062:11;;;;;5018:9;;;;;:30;;:32;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;4982:92;4961:204;;;;;;;9591:2:357;4961:204:235;;;9573:21:357;9630:2;9610:18;;;9603:30;9669:34;9649:18;;;9642:62;9740:34;9720:18;;;9713:62;9812:3;9791:19;;;9784:32;9833:19;;4961:204:235;9389:469:357;4961:204:235;11522:7:::1;11509:9;:20;11501:91;;;::::0;::::1;::::0;;11520:2:357;11501:91:235::1;::::0;::::1;11502:21:357::0;11559:2;11539:18;;;11532:30;11598:34;11578:18;;;11571:62;11669:28;11649:18;;;11642:56;11715:19;;11501:91:235::1;11318:422:357::0;11501:91:235::1;11625:4;11610:20;::::0;::::1;::::0;11602:68:::1;;;::::0;::::1;::::0;;11947:2:357;11602:68:235::1;::::0;::::1;11929:21:357::0;11986:2;11966:18;;;11959:30;12025:34;12005:18;;;11998:62;12096:5;12076:18;;;12069:33;12119:19;;11602:68:235::1;11745:399:357::0;11602:68:235::1;11703:9;::::0;::::1;::::0;;::::1;11688:25:::0;;::::1;::::0;11680:78:::1;;;::::0;::::1;::::0;;12351:2:357;11680:78:235::1;::::0;::::1;12333:21:357::0;12390:2;12370:18;;;12363:30;12429:34;12409:18;;;12402:62;12500:10;12480:18;;;12473:38;12528:19;;11680:78:235::1;12149:404:357::0;11680:78:235::1;11936:56;11960:5;11967:3;11972:7;11981:10;;11936:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11936:23:235::1;::::0;-1:-1:-1;;;11936:56:235:i:1;:::-;12003:12;12018:45;12032:3;12037:9;12048:7;12018:45;;;;;;;;;;;::::0;:13:::1;:45::i;:::-;12003:60;;12081:7;12073:55;;;::::0;::::1;::::0;;12760:2:357;12073:55:235::1;::::0;::::1;12742:21:357::0;12799:2;12779:18;;;12772:30;12838:34;12818:18;;;12811:62;12909:5;12889:18;;;12882:33;12932:19;;12073:55:235::1;12558:399:357::0;3897:313:149;4741:10:235;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;4115:88:149::1;4135:8;4145:10;4157;4169:7;4178:12;4192:10;;4115:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4115:19:149::1;::::0;-1:-1:-1;;;4115:88:149:i:1;:::-;3897:313:::0;;;;;:::o;10320:349:235:-;10563:99;10584:11;10597:12;10611:10;10623:3;10628:7;10637:12;10651:10;;10563:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10563:20:235;;-1:-1:-1;;;10563:99:235:i;6087:505:149:-;6341:22;;;;:65;;;;-1:-1:-1;6367:39:149;;;2708:42:199;6367:39:149;6341:65;6337:249;;;6422:50;6440:5;6447:3;6452:7;6461:10;;6422:17;:50::i;:::-;6337:249;;;6503:72;6523:8;6533;6543:5;6550:3;6555:7;6564:10;;6503:19;:72::i;9277:349:235:-;4741:10;1465:19:59;:23;4713:99:235;;;;;;;216:2:357;4713:99:235;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:25;345:18;;;338:53;408:19;;4713:99:235;14:419:357;4713:99:235;9513:106:::1;9534:11;9547:12;9561:10;9573;9585:7;9594:12;9608:10;;9513:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;9513:20:235::1;::::0;-1:-1:-1;;;9513:106:235:i:1;5197:313:149:-:0;5422:81;5442:8;5452:10;5464:3;5469:7;5478:12;5492:10;;5422:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5422:19:149;;-1:-1:-1;;;5422:81:149:i;2849:242::-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;13164:2:357;3146:190:43;;;13146:21:357;13203:2;13183:18;;;13176:30;13242:34;13222:18;;;13215:62;13313:16;13293:18;;;13286:44;13347:19;;3146:190:43;12962:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;2927:157:149::1;480:42:199;3061:12:149;2927:21;:157::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;13529:36:357;;3531:14:43;;13517:2:357;13502:18;3531:14:43;;;;;;;3457:99;3090:472;2849:242:149;:::o;8450:186:235:-;8557:72;8576:10;8588:3;8593:9;8604:12;8618:10;;8557:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8557:18:235;;-1:-1:-1;;;8557:72:235:i;:::-;8450:186;;;;:::o;14539:789::-;14756:7;14743:9;:20;14735:95;;;;;;;13778:2:357;14735:95:235;;;13760:21:357;13817:2;13797:18;;;13790:30;13856:34;13836:18;;;13829:62;13927:32;13907:18;;;13900:60;13977:19;;14735:95:235;13576:426:357;14735:95:235;15008:56;15032:5;15039:3;15044:7;15053:10;15008:23;:56::i;:::-;15075:9;;15146:11;;15182:88;;15075:9;;;;;:21;;15105:7;;15146:11;;;15205:31;;15182:88;;15238:5;;15245:3;;15105:7;;15259:10;;15182:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;15075:246;;;;;;;;;;;;;15298:12;;15075:246;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14539:789;;;;;:::o;16022:1680::-;16283:37;16308:11;16283:24;:37::i;:::-;16279:512;;;16361:46;16381:11;16394:12;16361:19;:46::i;:::-;16336:179;;;;;;;10416:2:357;16336:179:235;;;10398:21:357;10455:2;10435:18;;;10428:30;10494:34;10474:18;;;10467:62;10565:34;10545:18;;;10538:62;10637:12;10616:19;;;10609:41;10667:19;;16336:179:235;10214:478:357;16336:179:235;16530:55;;;;;:39;10889:55:357;;;16530::235;;;10871:74:357;10961:18;;;10954:34;;;16530:39:235;;;;;10844:18:357;;16530:55:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16279:512;;;16616:67;:36;;;16653:5;16668:4;16675:7;16616:36;:67::i;:::-;16735:21;;;;;;;;:8;:21;;;;;;;;:35;;;;;;;;;;:45;;16773:7;;16735:45;:::i;:::-;16697:21;;;;;;;;:8;:21;;;;;;;;:35;;;;;;;;;:83;16279:512;16981:85;17007:11;17020:12;17034:5;17041:3;17046:7;17055:10;16981:25;:85::i;:::-;17077:9;;17130:11;;17166:478;;17077:9;;;;;:21;;17130:11;;17206:33;;17166:478;;17492:12;;17522:11;;17551:5;;17574:3;;17595:7;;17620:10;;17166:478;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:618;;;;;;;;;;;;;17672:12;;17077:618;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16022:1680;;;;;;;:::o;17966:279::-;18039:4;18062:79;18094:6;18102:38;18062:31;:79::i;:::-;:176;;;;18157:81;18189:6;18197:40;18157:31;:81::i;:::-;18055:183;17966:279;-1:-1:-1;;17966:279:235:o;18692:410::-;18789:4;18809:87;18841:14;18857:38;18809:31;:87::i;:::-;18805:291;;;18955:14;18934:44;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18919:61;;:11;:61;;;18912:68;;;;18805:291;19056:14;19033:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:205:52;902:58;;10901:42:357;10889:55;;902:58:52;;;10871:74:357;10961:18;;;10954:34;;;875:86:52;;895:5;;925:23;;10844:18:357;;902:58:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;10007:439:149:-;10306:5;10262:76;;10293:11;10262:76;;10279:12;10262:76;;;10313:3;10318:7;10327:10;10262:76;;;;;;;;:::i;:::-;;;;;;;;10348:91;10380:11;10393:12;10407:5;10414:3;10419:7;10428:10;10348:31;:91::i;8745:363::-;8997:5;8939:90;;2708:42:199;8939:90:149;;8964:1;8939:90;;;9004:3;9009:7;9018:10;8939:90;;;;;;;;:::i;:::-;;;;;;;;9039:62;9069:5;9076:3;9081:7;9090:10;9039:29;:62::i;1202:536:200:-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;5373:236:235:-;4888:13:43;;;;;;;4880:69;;;;;;;16381:2:357;4880:69:43;;;16363:21:357;16420:2;16400:18;;;16393:30;16459:34;16439:18;;;16432:62;16530:13;16510:18;;;16503:41;16561:19;;4880:69:43;16179:407:357;4880:69:43;5544:9:235::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;5576:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;5373:236::o;8154:366:149:-;8409:5;8348:93;;2708:42:199;8348:93:149;;8376:1;8348:93;;;8416:3;8421:7;8430:10;8348:93;;;;;;;;:::i;:::-;;;;;;;;8451:62;8481:5;8488:3;8493:7;8502:10;8451:29;:62::i;974:241:52:-;1139:68;;16803:42:357;16872:15;;;1139:68:52;;;16854:34:357;16924:15;;16904:18;;;16897:43;16956:18;;;16949:34;;;1112:96:52;;1132:5;;1162:27;;16766:18:357;;1139:68:52;16591:398:357;9338:442:149;9640:5;9593:79;;9627:11;9593:79;;9613:12;9593:79;;;9647:3;9652:7;9661:10;9593:79;;;;;;;;:::i;:::-;;;;;;;;9682:91;9714:11;9727:12;9741:5;9748:3;9753:7;9762:10;9682:31;:91::i;1333:274:67:-;1420:4;1527:23;1542:7;1527:14;:23::i;:::-;:73;;;;;1554:46;1579:7;1588:11;1554:24;:46::i;:::-;1520:80;1333:274;-1:-1:-1;;;1333:274:67:o;3747:706:52:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:52;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;17478:2:357;4351:85:52;;;17460:21:357;17517:2;17497:18;;;17490:30;17556:34;17536:18;;;17529:62;17627:12;17607:18;;;17600:40;17657:19;;4351:85:52;17276:406:357;21757:341:235;22059:5;22011:80;;22045:12;22011:80;;22032:11;22011:80;;;22066:3;22071:7;22080:10;22011:80;;;;;;;;:::i;:::-;;;;;;;;21757:341;;;;;;:::o;20099:251::-;20318:3;20292:51;;20311:5;20292:51;;;20323:7;20332:10;20292:51;;;;;;;:::i;:::-;;;;;;;;20099:251;;;;:::o;19478:::-;19697:3;19671:51;;19690:5;19671:51;;;19702:7;19711:10;19671:51;;;;;;;:::i;20883:341::-;21185:5;21137:80;;21171:12;21137:80;;21158:11;21137:80;;;21192:3;21197:7;21206:10;21137:80;;;;;;;;:::i;704:411:67:-;768:4;975:60;1000:7;1009:25;975:24;:60::i;:::-;:133;;;;-1:-1:-1;1052:56:67;1077:7;1086:21;1052:24;:56::i;:::-;1051:57;956:152;704:411;-1:-1:-1;;704:411:67:o;4223:638::-;4385:71;;;18155:66:357;18143:79;;4385:71:67;;;;18125:98:357;;;;4385:71:67;;;;;;;;;;18098:18:357;;;;4385:71:67;;;;;;;;;;;4408:34;4385:71;;;4664:20;;4316:4;;4385:71;4316:4;;;;;;4385:71;4316:4;;4664:20;4629:7;4622:5;4611:86;4600:97;;4724:16;4710:30;;4774:4;4768:11;4753:26;;4806:7;:29;;;;;4831:4;4817:10;:18;;4806:29;:48;;;;;4853:1;4839:11;:15;4806:48;4799:55;4223:638;-1:-1:-1;;;;;;;4223:638:67:o;3861:223:59:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;3861:223;-1:-1:-1;;;;3861:223:59:o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;18436:2:357;5137:81:59;;;18418:21:357;18475:2;18455:18;;;18448:30;18514:34;18494:18;;;18487:62;18585:8;18565:18;;;18558:36;18611:19;;5137:81:59;18234:402:357;5137:81:59;1465:19;;;;5228:60;;;;;;;18843:2:357;5228:60:59;;;18825:21:357;18882:2;18862:18;;;18855:30;18921:31;18901:18;;;18894:59;18970:18;;5228:60:59;18641:353:357;5228:60:59;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;7707;7735:7;7731:566;;;-1:-1:-1;7765:10:59;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;438:154:357:-;524:42;517:5;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;438:154;:::o;597:347::-;648:8;658:6;712:3;705:4;697:6;693:17;689:27;679:55;;730:1;727;720:12;679:55;-1:-1:-1;753:20:357;;796:18;785:30;;782:50;;;828:1;825;818:12;782:50;865:4;857:6;853:17;841:29;;917:3;910:4;901:6;893;889:19;885:30;882:39;879:59;;;934:1;931;924:12;879:59;597:347;;;;;:::o;949:1038::-;1064:6;1072;1080;1088;1096;1104;1112;1165:3;1153:9;1144:7;1140:23;1136:33;1133:53;;;1182:1;1179;1172:12;1133:53;1221:9;1208:23;1240:31;1265:5;1240:31;:::i;:::-;1290:5;-1:-1:-1;1347:2:357;1332:18;;1319:32;1360:33;1319:32;1360:33;:::i;:::-;1412:7;-1:-1:-1;1471:2:357;1456:18;;1443:32;1484:33;1443:32;1484:33;:::i;:::-;1536:7;-1:-1:-1;1595:2:357;1580:18;;1567:32;1608:33;1567:32;1608:33;:::i;:::-;1660:7;-1:-1:-1;1714:3:357;1699:19;;1686:33;;-1:-1:-1;1770:3:357;1755:19;;1742:33;1798:18;1787:30;;1784:50;;;1830:1;1827;1820:12;1784:50;1869:58;1919:7;1910:6;1899:9;1895:22;1869:58;:::i;:::-;949:1038;;;;-1:-1:-1;949:1038:357;;-1:-1:-1;949:1038:357;;;;1843:84;;-1:-1:-1;;;949:1038:357:o;1992:163::-;2059:20;;2119:10;2108:22;;2098:33;;2088:61;;2145:1;2142;2135:12;2088:61;1992:163;;;:::o;2160:481::-;2238:6;2246;2254;2307:2;2295:9;2286:7;2282:23;2278:32;2275:52;;;2323:1;2320;2313:12;2275:52;2346:28;2364:9;2346:28;:::i;:::-;2336:38;;2425:2;2414:9;2410:18;2397:32;2452:18;2444:6;2441:30;2438:50;;;2484:1;2481;2474:12;2438:50;2523:58;2573:7;2564:6;2553:9;2549:22;2523:58;:::i;:::-;2160:481;;2600:8;;-1:-1:-1;2497:84:357;;-1:-1:-1;;;;2160:481:357:o;2646:754::-;2743:6;2751;2759;2767;2775;2828:3;2816:9;2807:7;2803:23;2799:33;2796:53;;;2845:1;2842;2835:12;2796:53;2884:9;2871:23;2903:31;2928:5;2903:31;:::i;:::-;2953:5;-1:-1:-1;3010:2:357;2995:18;;2982:32;3023:33;2982:32;3023:33;:::i;:::-;3075:7;-1:-1:-1;3129:2:357;3114:18;;3101:32;;-1:-1:-1;3184:2:357;3169:18;;3156:32;3211:18;3200:30;;3197:50;;;3243:1;3240;3233:12;3197:50;3282:58;3332:7;3323:6;3312:9;3308:22;3282:58;:::i;:::-;2646:754;;;;-1:-1:-1;2646:754:357;;-1:-1:-1;3359:8:357;;3256:84;2646:754;-1:-1:-1;;;2646:754:357:o;3405:685::-;3501:6;3509;3517;3525;3533;3586:3;3574:9;3565:7;3561:23;3557:33;3554:53;;;3603:1;3600;3593:12;3554:53;3642:9;3629:23;3661:31;3686:5;3661:31;:::i;:::-;3711:5;-1:-1:-1;3763:2:357;3748:18;;3735:32;;-1:-1:-1;3786:37:357;3819:2;3804:18;;3786:37;:::i;:::-;3776:47;;3874:2;3863:9;3859:18;3846:32;3901:18;3893:6;3890:30;3887:50;;;3933:1;3930;3923:12;4588:969;4702:6;4710;4718;4726;4734;4742;4750;4803:3;4791:9;4782:7;4778:23;4774:33;4771:53;;;4820:1;4817;4810:12;4771:53;4859:9;4846:23;4878:31;4903:5;4878:31;:::i;:::-;4928:5;-1:-1:-1;4985:2:357;4970:18;;4957:32;4998:33;4957:32;4998:33;:::i;:::-;5050:7;-1:-1:-1;5109:2:357;5094:18;;5081:32;5122:33;5081:32;5122:33;:::i;:::-;5174:7;-1:-1:-1;5228:2:357;5213:18;;5200:32;;-1:-1:-1;5251:38:357;5284:3;5269:19;;5251:38;:::i;:::-;5241:48;;5340:3;5329:9;5325:19;5312:33;5368:18;5360:6;5357:30;5354:50;;;5400:1;5397;5390:12;5562:258;5634:1;5644:113;5658:6;5655:1;5652:13;5644:113;;;5734:11;;;5728:18;5715:11;;;5708:39;5680:2;5673:10;5644:113;;;5775:6;5772:1;5769:13;5766:48;;;-1:-1:-1;;5810:1:357;5792:16;;5785:27;5562:258::o;5825:317::-;5867:3;5905:5;5899:12;5932:6;5927:3;5920:19;5948:63;6004:6;5997:4;5992:3;5988:14;5981:4;5974:5;5970:16;5948:63;:::i;:::-;6056:2;6044:15;6061:66;6040:88;6031:98;;;;6131:4;6027:109;;5825:317;-1:-1:-1;;5825:317:357:o;6147:220::-;6296:2;6285:9;6278:21;6259:4;6316:45;6357:2;6346:9;6342:18;6334:6;6316:45;:::i;6828:827::-;6933:6;6941;6949;6957;6965;6973;7026:3;7014:9;7005:7;7001:23;6997:33;6994:53;;;7043:1;7040;7033:12;6994:53;7082:9;7069:23;7101:31;7126:5;7101:31;:::i;:::-;7151:5;-1:-1:-1;7208:2:357;7193:18;;7180:32;7221:33;7180:32;7221:33;:::i;:::-;7273:7;-1:-1:-1;7327:2:357;7312:18;;7299:32;;-1:-1:-1;7350:37:357;7383:2;7368:18;;7350:37;:::i;:::-;7340:47;;7438:3;7427:9;7423:19;7410:33;7466:18;7458:6;7455:30;7452:50;;;7498:1;7495;7488:12;7452:50;7537:58;7587:7;7578:6;7567:9;7563:22;7537:58;:::i;:::-;6828:827;;;;-1:-1:-1;6828:827:357;;-1:-1:-1;6828:827:357;;7614:8;;6828:827;-1:-1:-1;;;6828:827:357:o;7660:388::-;7728:6;7736;7789:2;7777:9;7768:7;7764:23;7760:32;7757:52;;;7805:1;7802;7795:12;7757:52;7844:9;7831:23;7863:31;7888:5;7863:31;:::i;:::-;7913:5;-1:-1:-1;7970:2:357;7955:18;;7942:32;7983:33;7942:32;7983:33;:::i;:::-;8035:7;8025:17;;;7660:388;;;;;:::o;8235:272::-;8319:6;8372:2;8360:9;8351:7;8347:23;8343:32;8340:52;;;8388:1;8385;8378:12;8340:52;8427:9;8414:23;8446:31;8471:5;8446:31;:::i;8512:616::-;8599:6;8607;8615;8623;8676:2;8664:9;8655:7;8651:23;8647:32;8644:52;;;8692:1;8689;8682:12;8644:52;8731:9;8718:23;8750:31;8775:5;8750:31;:::i;:::-;8800:5;-1:-1:-1;8824:37:357;8857:2;8842:18;;8824:37;:::i;:::-;8814:47;;8912:2;8901:9;8897:18;8884:32;8939:18;8931:6;8928:30;8925:50;;;8971:1;8968;8961:12;8925:50;9010:58;9060:7;9051:6;9040:9;9036:22;9010:58;:::i;:::-;8512:616;;;;-1:-1:-1;9087:8:357;-1:-1:-1;;;;8512:616:357:o;9133:251::-;9203:6;9256:2;9244:9;9235:7;9231:23;9227:32;9224:52;;;9272:1;9269;9262:12;9224:52;9304:9;9298:16;9323:31;9348:5;9323:31;:::i;10999:184::-;11051:77;11048:1;11041:88;11148:4;11145:1;11138:15;11172:4;11169:1;11162:15;11188:125;11228:4;11256:1;11253;11250:8;11247:34;;;11261:18;;:::i;:::-;-1:-1:-1;11298:9:357;;11188:125::o;14007:512::-;14201:4;14230:42;14311:2;14303:6;14299:15;14288:9;14281:34;14363:2;14355:6;14351:15;14346:2;14335:9;14331:18;14324:43;;14403:6;14398:2;14387:9;14383:18;14376:34;14446:3;14441:2;14430:9;14426:18;14419:31;14467:46;14508:3;14497:9;14493:19;14485:6;14467:46;:::i;:::-;14459:54;14007:512;-1:-1:-1;;;;;;14007:512:357:o;14524:424::-;14737:42;14729:6;14725:55;14714:9;14707:74;14817:2;14812;14801:9;14797:18;14790:30;14688:4;14837:45;14878:2;14867:9;14863:18;14855:6;14837:45;:::i;:::-;14829:53;;14930:10;14922:6;14918:23;14913:2;14902:9;14898:18;14891:51;14524:424;;;;;;:::o;14953:128::-;14993:3;15024:1;15020:6;15017:1;15014:13;15011:39;;;15030:18;;:::i;:::-;-1:-1:-1;15066:9:357;;14953:128::o;15086:674::-;15336:4;15365:42;15446:2;15438:6;15434:15;15423:9;15416:34;15498:2;15490:6;15486:15;15481:2;15470:9;15466:18;15459:43;15550:2;15542:6;15538:15;15533:2;15522:9;15518:18;15511:43;15602:2;15594:6;15590:15;15585:2;15574:9;15570:18;15563:43;;15643:6;15637:3;15626:9;15622:19;15615:35;15687:3;15681;15670:9;15666:19;15659:32;15708:46;15749:3;15738:9;15734:19;15726:6;15708:46;:::i;:::-;15700:54;15086:674;-1:-1:-1;;;;;;;;15086:674:357:o;15765:409::-;15980:42;15972:6;15968:55;15957:9;15950:74;16060:6;16055:2;16044:9;16040:18;16033:34;16103:2;16098;16087:9;16083:18;16076:30;15931:4;16123:45;16164:2;16153:9;16149:18;16141:6;16123:45;:::i;:::-;16115:53;15765:409;-1:-1:-1;;;;;15765:409:357:o;16994:277::-;17061:6;17114:2;17102:9;17093:7;17089:23;17085:32;17082:52;;;17130:1;17127;17120:12;17082:52;17162:9;17156:16;17215:5;17208:13;17201:21;17194:5;17191:32;17181:60;;17237:1;17234;17227:12;17687:289;17862:6;17851:9;17844:25;17905:2;17900;17889:9;17885:18;17878:30;17825:4;17925:45;17966:2;17955:9;17951:18;17943:6;17925:45;:::i;18999:274::-;19128:3;19166:6;19160:13;19182:53;19228:6;19223:3;19216:4;19208:6;19204:17;19182:53;:::i;:::-;19251:16;;;;;18999:274;-1:-1:-1;;18999:274:357:o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC20(address,address,uint256,uint32,bytes)":"87087623","bridgeERC20To(address,address,address,uint256,uint32,bytes)":"540abf73","bridgeETH(uint32,bytes)":"09fc8843","bridgeETHTo(address,uint32,bytes)":"e11013dd","deposits(address,address)":"8f601f66","finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","finalizeDeposit(address,address,address,address,uint256,bytes)":"662a633a","initialize(address)":"c4d66de8","l1TokenBridge()":"36c717c1","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","version()":"54fd4d50","withdraw(address,uint256,uint32,bytes)":"32b7006d","withdrawTo(address,address,uint256,uint32,bytes)":"a3a79548"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"DepositFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHBridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ETHBridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"WithdrawalInitiated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeETHTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"_otherBridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TokenBridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000010\",\"events\":{\"DepositFinalized(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever an ERC20 deposit is finalized.\",\"params\":{\"amount\":\"Amount of the ERC20 deposited.\",\"extraData\":\"Extra data attached to the deposit.\",\"from\":\"Address of the depositor.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L2.\"}},\"WithdrawalInitiated(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever a withdrawal from L2 to L1 is initiated.\",\"params\":{\"amount\":\"Amount of the ERC20 withdrawn.\",\"extraData\":\"Extra data attached to the withdrawal.\",\"from\":\"Address of the withdrawer.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L1.\"}}},\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the messenger on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC20(address,address,uint256,uint32,bytes)\":{\"params\":{\"_amount\":\"Amount of local tokens to deposit.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\"}},\"bridgeERC20To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_amount\":\"Amount of local tokens to deposit.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\",\"_to\":\"Address of the receiver.\"}},\"bridgeETH(uint32,bytes)\":{\"params\":{\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\"}},\"bridgeETHTo(address,uint32,bytes)\":{\"params\":{\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_minGasLimit\":\"Minimum amount of gas that the bridge can be relayed with.\",\"_to\":\"Address of the receiver.\"}},\"finalizeBridgeERC20(address,address,address,address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of the ERC20 being bridged.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_from\":\"Address of the sender.\",\"_localToken\":\"Address of the ERC20 on this chain.\",\"_remoteToken\":\"Address of the corresponding token on the remote chain.\",\"_to\":\"Address of the receiver.\"}},\"finalizeBridgeETH(address,address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of ETH being bridged.\",\"_extraData\":\"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.\",\"_from\":\"Address of the sender.\",\"_to\":\"Address of the receiver.\"}},\"finalizeDeposit(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Finalizes a deposit from L1 to L2. To finalize a deposit of ether, use address(0) and the l1Token and the Legacy ERC20 ether predeploy address as the l2Token.\",\"params\":{\"_amount\":\"Amount of the tokens being deposited.\",\"_extraData\":\"Extra data attached to the deposit.\",\"_from\":\"Address of the depositor.\",\"_l1Token\":\"Address of the L1 token to deposit.\",\"_l2Token\":\"Address of the corresponding L2 token.\",\"_to\":\"Address of the recipient.\"}},\"initialize(address)\":{\"params\":{\"_otherBridge\":\"Contract for the corresponding bridge on the other chain.\"}},\"l1TokenBridge()\":{\"custom:legacy\":\"@notice Retrieves the access of the corresponding L1 bridge contract.\",\"returns\":{\"_0\":\"Address of the corresponding L1 bridge contract.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}},\"withdraw(address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Initiates a withdrawal from L2 to L1. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20` function to bridge native L2 tokens to L1.\",\"params\":{\"_amount\":\"Amount of the L2 token to withdraw.\",\"_extraData\":\"Extra data attached to the withdrawal.\",\"_l2Token\":\"Address of the L2 token to withdraw.\",\"_minGasLimit\":\"Minimum gas limit to use for the transaction.\"}},\"withdrawTo(address,address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Initiates a withdrawal from L2 to L1 to a target account on L1. Note that if ETH is sent to a contract on L1 and the call fails, then that ETH will be locked in the L1StandardBridge. ETH may be recoverable if the call can be successfully replayed by increasing the amount of gas supplied to the call. If the call will fail for any amount of gas, then the ETH will be locked permanently. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20To` function to bridge native L2 tokens to L1.\",\"params\":{\"_amount\":\"Amount of the L2 token to withdraw.\",\"_extraData\":\"Extra data attached to the withdrawal.\",\"_l2Token\":\"Address of the L2 token to withdraw.\",\"_minGasLimit\":\"Minimum gas limit to use for the transaction.\",\"_to\":\"Recipient account on L1.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.8.0\"}},\"title\":\"L2StandardBridge\",\"version\":1},\"userdoc\":{\"events\":{\"ERC20BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC20 bridge is finalized on this chain.\"},\"ERC20BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC20 bridge is initiated to the other chain.\"},\"ETHBridgeFinalized(address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ETH bridge is finalized on this chain.\"},\"ETHBridgeInitiated(address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ETH bridge is initiated to the other chain.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC20(address,address,uint256,uint32,bytes)\":{\"notice\":\"Sends ERC20 tokens to the sender's address on the other chain.\"},\"bridgeERC20To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Sends ERC20 tokens to a receiver's address on the other chain.\"},\"bridgeETH(uint32,bytes)\":{\"notice\":\"Sends ETH to the sender's address on the other chain.\"},\"bridgeETHTo(address,uint32,bytes)\":{\"notice\":\"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case.\"},\"constructor\":{\"notice\":\"Constructs the L2StandardBridge contract.\"},\"deposits(address,address)\":{\"notice\":\"Mapping that stores deposits for a given pair of local and remote tokens.\"},\"finalizeBridgeERC20(address,address,address,address,uint256,bytes)\":{\"notice\":\"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.\"},\"finalizeBridgeETH(address,address,uint256,bytes)\":{\"notice\":\"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.\"},\"initialize(address)\":{\"notice\":\"Initializer.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Corresponding bridge on the other domain.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\"}},\"notice\":\"The L2StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and L2. In the case that an ERC20 token is native to L2, it will be escrowed within this contract. If the ERC20 token is native to L1, it will be burnt. NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples of some token types that may not be properly supported by this contract include, but are not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2StandardBridge.sol\":\"L2StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\",\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"DepositFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHBridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ETHBridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"WithdrawalInitiated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20To"},{"inputs":[{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"bridgeETH"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"bridgeETHTo"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"finalizeBridgeETH"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"finalizeDeposit"},{"inputs":[{"internalType":"contract StandardBridge","name":"_otherBridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Contract of the messenger on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC20(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain."}},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"bridgeETH(uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with."}},"bridgeETHTo(address,uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_to":"Address of the receiver."}},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the ERC20 being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_localToken":"Address of the ERC20 on this chain.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"finalizeBridgeETH(address,address,uint256,bytes)":{"params":{"_amount":"Amount of ETH being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_to":"Address of the receiver."}},"finalizeDeposit(address,address,address,address,uint256,bytes)":{"custom:legacy":"@notice Finalizes a deposit from L1 to L2. To finalize a deposit of ether, use address(0) and the l1Token and the Legacy ERC20 ether predeploy address as the l2Token.","params":{"_amount":"Amount of the tokens being deposited.","_extraData":"Extra data attached to the deposit.","_from":"Address of the depositor.","_l1Token":"Address of the L1 token to deposit.","_l2Token":"Address of the corresponding L2 token.","_to":"Address of the recipient."}},"initialize(address)":{"params":{"_otherBridge":"Contract for the corresponding bridge on the other chain."}},"l1TokenBridge()":{"custom:legacy":"@notice Retrieves the access of the corresponding L1 bridge contract.","returns":{"_0":"Address of the corresponding L1 bridge contract."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"withdraw(address,uint256,uint32,bytes)":{"custom:legacy":"@notice Initiates a withdrawal from L2 to L1. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20` function to bridge native L2 tokens to L1.","params":{"_amount":"Amount of the L2 token to withdraw.","_extraData":"Extra data attached to the withdrawal.","_l2Token":"Address of the L2 token to withdraw.","_minGasLimit":"Minimum gas limit to use for the transaction."}},"withdrawTo(address,address,uint256,uint32,bytes)":{"custom:legacy":"@notice Initiates a withdrawal from L2 to L1 to a target account on L1. Note that if ETH is sent to a contract on L1 and the call fails, then that ETH will be locked in the L1StandardBridge. ETH may be recoverable if the call can be successfully replayed by increasing the amount of gas supplied to the call. If the call will fail for any amount of gas, then the ETH will be locked permanently. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20To` function to bridge native L2 tokens to L1.","params":{"_amount":"Amount of the L2 token to withdraw.","_extraData":"Extra data attached to the withdrawal.","_l2Token":"Address of the L2 token to withdraw.","_minGasLimit":"Minimum gas limit to use for the transaction.","_to":"Recipient account on L1."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC20(address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to the sender's address on the other chain."},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to a receiver's address on the other chain."},"bridgeETH(uint32,bytes)":{"notice":"Sends ETH to the sender's address on the other chain."},"bridgeETHTo(address,uint32,bytes)":{"notice":"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case."},"constructor":{"notice":"Constructs the L2StandardBridge contract."},"deposits(address,address)":{"notice":"Mapping that stores deposits for a given pair of local and remote tokens."},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"notice":"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"finalizeBridgeETH(address,address,uint256,bytes)":{"notice":"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"initialize(address)":{"notice":"Initializer."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Corresponding bridge on the other domain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2StandardBridge.sol":"L2StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":110944,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":110947,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"spacer_1_0_20","offset":0,"slot":"1","type":"t_address"},{"astId":110954,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"deposits","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":110958,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"messenger","offset":0,"slot":"3","type":"t_contract(CrossDomainMessenger)108888"},{"astId":110962,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"otherBridge","offset":0,"slot":"4","type":"t_contract(StandardBridge)111675"},{"astId":110967,"contract":"src/L2/L2StandardBridge.sol:L2StandardBridge","label":"__gap","offset":0,"slot":"5","type":"t_array(t_uint256)45_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)45_storage":{"encoding":"inplace","label":"uint256[45]","numberOfBytes":"1440","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Getter for the other bridge contract. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC20(address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to the sender's address on the other chain."},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"notice":"Sends ERC20 tokens to a receiver's address on the other chain."},"bridgeETH(uint32,bytes)":{"notice":"Sends ETH to the sender's address on the other chain."},"bridgeETHTo(address,uint32,bytes)":{"notice":"Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case."},"constructor":{"notice":"Constructs the L2StandardBridge contract."},"deposits(address,address)":{"notice":"Mapping that stores deposits for a given pair of local and remote tokens."},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"notice":"Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"finalizeBridgeETH(address,address,uint256,bytes)":{"notice":"Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain."},"initialize(address)":{"notice":"Initializer."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Corresponding bridge on the other domain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"events":{"ERC20BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC20 bridge is finalized on this chain."},"ERC20BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC20 bridge is initiated to the other chain."},"ETHBridgeFinalized(address,address,uint256,bytes)":{"notice":"Emitted when an ETH bridge is finalized on this chain."},"ETHBridgeInitiated(address,address,uint256,bytes)":{"notice":"Emitted when an ETH bridge is initiated to the other chain."}},"notice":"The L2StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and L2. In the case that an ERC20 token is native to L2, it will be escrowed within this contract. If the ERC20 token is native to L1, it will be burnt. NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples of some token types that may not be properly supported by this contract include, but are not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Contract of the messenger on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC20(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain."}},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of local tokens to deposit.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_localToken":"Address of the ERC20 on this chain.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"bridgeETH(uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with."}},"bridgeETHTo(address,uint32,bytes)":{"params":{"_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_minGasLimit":"Minimum amount of gas that the bridge can be relayed with.","_to":"Address of the receiver."}},"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the ERC20 being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_localToken":"Address of the ERC20 on this chain.","_remoteToken":"Address of the corresponding token on the remote chain.","_to":"Address of the receiver."}},"finalizeBridgeETH(address,address,uint256,bytes)":{"params":{"_amount":"Amount of ETH being bridged.","_extraData":"Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.","_from":"Address of the sender.","_to":"Address of the receiver."}},"finalizeDeposit(address,address,address,address,uint256,bytes)":{"params":{"_amount":"Amount of the tokens being deposited.","_extraData":"Extra data attached to the deposit.","_from":"Address of the depositor.","_l1Token":"Address of the L1 token to deposit.","_l2Token":"Address of the corresponding L2 token.","_to":"Address of the recipient."}},"initialize(address)":{"params":{"_otherBridge":"Contract for the corresponding bridge on the other chain."}},"l1TokenBridge()":{"returns":{"_0":"Address of the corresponding L1 bridge contract."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"withdraw(address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of the L2 token to withdraw.","_extraData":"Extra data attached to the withdrawal.","_l2Token":"Address of the L2 token to withdraw.","_minGasLimit":"Minimum gas limit to use for the transaction."}},"withdrawTo(address,address,uint256,uint32,bytes)":{"params":{"_amount":"Amount of the L2 token to withdraw.","_extraData":"Extra data attached to the withdrawal.","_l2Token":"Address of the L2 token to withdraw.","_minGasLimit":"Minimum gas limit to use for the transaction.","_to":"Recipient account on L1."}}},"events":{"DepositFinalized(address,address,address,address,uint256,bytes)":{"params":{"amount":"Amount of the ERC20 deposited.","extraData":"Extra data attached to the deposit.","from":"Address of the depositor.","l1Token":"Address of the token on L1.","l2Token":"Address of the corresponding token on L2.","to":"Address of the recipient on L2."}},"WithdrawalInitiated(address,address,address,address,uint256,bytes)":{"params":{"amount":"Amount of the ERC20 withdrawn.","extraData":"Extra data attached to the withdrawal.","from":"Address of the withdrawer.","l1Token":"Address of the token on L1.","l2Token":"Address of the corresponding token on L2.","to":"Address of the recipient on L1."}}},"title":"L2StandardBridge"},"ast":{"absolutePath":"src/L2/L2StandardBridge.sol","id":91147,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ISemver":[109417],"L2StandardBridge":[91146],"OptimismMintableERC20":[109645],"Predeploys":[104124],"StandardBridge":[111675]},"nodeType":"SourceUnit","src":"32:10417:149","nodes":[{"id":90725,"nodeType":"PragmaDirective","src":"32:23:149","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90727,"nodeType":"ImportDirective","src":"57:58:149","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":90726,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"66:10:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90729,"nodeType":"ImportDirective","src":"116:66:149","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":90728,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"125:14:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90731,"nodeType":"ImportDirective","src":"183:52:149","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90730,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"192:7:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90733,"nodeType":"ImportDirective","src":"236:80:149","nodes":[],"absolutePath":"src/universal/OptimismMintableERC20.sol","file":"src/universal/OptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":109646,"symbolAliases":[{"foreign":{"id":90732,"name":"OptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109645,"src":"245:21:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90735,"nodeType":"ImportDirective","src":"317:78:149","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":90734,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"326:20:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90737,"nodeType":"ImportDirective","src":"396:56:149","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":91147,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":90736,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"405:9:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91146,"nodeType":"ContractDefinition","src":"1141:9307:149","nodes":[{"id":90757,"nodeType":"EventDefinition","src":"1646:197:149","nodes":[],"anonymous":false,"documentation":{"id":90743,"nodeType":"StructuredDocumentation","src":"1200:441:149","text":"@custom:legacy\n @notice Emitted whenever a withdrawal from L2 to L1 is initiated.\n @param l1Token Address of the token on L1.\n @param l2Token Address of the corresponding token on L2.\n @param from Address of the withdrawer.\n @param to Address of the recipient on L1.\n @param amount Amount of the ERC20 withdrawn.\n @param extraData Extra data attached to the withdrawal."},"eventSelector":"73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e","name":"WithdrawalInitiated","nameLocation":"1652:19:149","parameters":{"id":90756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90745,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"1697:7:149","nodeType":"VariableDeclaration","scope":90757,"src":"1681:23:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90744,"name":"address","nodeType":"ElementaryTypeName","src":"1681:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90747,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"1730:7:149","nodeType":"VariableDeclaration","scope":90757,"src":"1714:23:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90746,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90749,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1763:4:149","nodeType":"VariableDeclaration","scope":90757,"src":"1747:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90748,"name":"address","nodeType":"ElementaryTypeName","src":"1747:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90751,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1785:2:149","nodeType":"VariableDeclaration","scope":90757,"src":"1777:10:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90750,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90753,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1805:6:149","nodeType":"VariableDeclaration","scope":90757,"src":"1797:14:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1797:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90755,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"1827:9:149","nodeType":"VariableDeclaration","scope":90757,"src":"1821:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90754,"name":"bytes","nodeType":"ElementaryTypeName","src":"1821:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1671:171:149"}},{"id":90772,"nodeType":"EventDefinition","src":"2281:194:149","nodes":[],"anonymous":false,"documentation":{"id":90758,"nodeType":"StructuredDocumentation","src":"1849:427:149","text":"@custom:legacy\n @notice Emitted whenever an ERC20 deposit is finalized.\n @param l1Token Address of the token on L1.\n @param l2Token Address of the corresponding token on L2.\n @param from Address of the depositor.\n @param to Address of the recipient on L2.\n @param amount Amount of the ERC20 deposited.\n @param extraData Extra data attached to the deposit."},"eventSelector":"b0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89","name":"DepositFinalized","nameLocation":"2287:16:149","parameters":{"id":90771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90760,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2329:7:149","nodeType":"VariableDeclaration","scope":90772,"src":"2313:23:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90759,"name":"address","nodeType":"ElementaryTypeName","src":"2313:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90762,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2362:7:149","nodeType":"VariableDeclaration","scope":90772,"src":"2346:23:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90761,"name":"address","nodeType":"ElementaryTypeName","src":"2346:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90764,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2395:4:149","nodeType":"VariableDeclaration","scope":90772,"src":"2379:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90763,"name":"address","nodeType":"ElementaryTypeName","src":"2379:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90766,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2417:2:149","nodeType":"VariableDeclaration","scope":90772,"src":"2409:10:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90765,"name":"address","nodeType":"ElementaryTypeName","src":"2409:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90768,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2437:6:149","nodeType":"VariableDeclaration","scope":90772,"src":"2429:14:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90767,"name":"uint256","nodeType":"ElementaryTypeName","src":"2429:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90770,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2459:9:149","nodeType":"VariableDeclaration","scope":90772,"src":"2453:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90769,"name":"bytes","nodeType":"ElementaryTypeName","src":"2453:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2303:171:149"}},{"id":90776,"nodeType":"VariableDeclaration","src":"2510:40:149","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90773,"nodeType":"StructuredDocumentation","src":"2481:24:149","text":"@custom:semver 1.8.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2533:7:149","scope":91146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90774,"name":"string","nodeType":"ElementaryTypeName","src":"2510:6:149","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e382e30","id":90775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2543:7:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd02a4b5da981b4c403351c949b2ca4bdb2fb4b72b50891f7eb106d3eb7049e9","typeString":"literal_string \"1.8.0\""},"value":"1.8.0"},"visibility":"public"},{"id":90795,"nodeType":"FunctionDefinition","src":"2615:113:149","nodes":[],"body":{"id":90794,"nodeType":"Block","src":"2646:82:149","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":90788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2714:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90786,"name":"address","nodeType":"ElementaryTypeName","src":"2706:7:149","typeDescriptions":{}}},"id":90789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:10:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2698:8:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":90784,"name":"address","nodeType":"ElementaryTypeName","src":"2698:8:149","stateMutability":"payable","typeDescriptions":{}}},"id":90790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2698:19:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90783,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"2683:14:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":90791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2683:35:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90782,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90813,"src":"2656:10:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract StandardBridge)"}},"id":90792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherBridge"],"nodeType":"FunctionCall","src":"2656:65:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90793,"nodeType":"ExpressionStatement","src":"2656:65:149"}]},"documentation":{"id":90777,"nodeType":"StructuredDocumentation","src":"2557:53:149","text":"@notice Constructs the L2StandardBridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":90780,"kind":"baseConstructorSpecifier","modifierName":{"id":90779,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":111675,"src":"2629:14:149"},"nodeType":"ModifierInvocation","src":"2629:16:149"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":90778,"nodeType":"ParameterList","parameters":[],"src":"2626:2:149"},"returnParameters":{"id":90781,"nodeType":"ParameterList","parameters":[],"src":"2646:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90813,"nodeType":"FunctionDefinition","src":"2849:242:149","nodes":[],"body":{"id":90812,"nodeType":"Block","src":"2917:174:149","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":90806,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2996:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":104004,"src":"2996:36:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90805,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"2975:20:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":90808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:58:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"id":90809,"name":"_otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90799,"src":"3061:12:149","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90804,"name":"__StandardBridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111080,"src":"2927:21:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":90810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"2927:157:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90811,"nodeType":"ExpressionStatement","src":"2927:157:149"}]},"documentation":{"id":90796,"nodeType":"StructuredDocumentation","src":"2734:110:149","text":"@notice Initializer.\n @param _otherBridge Contract for the corresponding bridge on the other chain."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":90802,"kind":"modifierInvocation","modifierName":{"id":90801,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"2905:11:149"},"nodeType":"ModifierInvocation","src":"2905:11:149"}],"name":"initialize","nameLocation":"2858:10:149","parameters":{"id":90800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90799,"mutability":"mutable","name":"_otherBridge","nameLocation":"2884:12:149","nodeType":"VariableDeclaration","scope":90813,"src":"2869:27:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"},"typeName":{"id":90798,"nodeType":"UserDefinedTypeName","pathNode":{"id":90797,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":111675,"src":"2869:14:149"},"referencedDeclaration":111675,"src":"2869:14:149","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}},"visibility":"internal"}],"src":"2868:29:149"},"returnParameters":{"id":90803,"nodeType":"ParameterList","parameters":[],"src":"2917:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90837,"nodeType":"FunctionDefinition","src":"3174:204:149","nodes":[],"body":{"id":90836,"nodeType":"Block","src":"3218:160:149","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":90821,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3261:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"LEGACY_ERC20_ETH","nodeType":"MemberAccess","referencedDeclaration":104047,"src":"3261:27:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90823,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3290:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3290:10:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3302:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3302:10:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90827,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3314:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3314:9:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90829,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110941,"src":"3325:25:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"hexValue":"","id":90832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3358:2:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":90831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3352:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":90830,"name":"bytes","nodeType":"ElementaryTypeName","src":"3352:5:149","typeDescriptions":{}}},"id":90833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3352:9:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90820,"name":"_initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90997,"src":"3228:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint32,bytes memory)"}},"id":90834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:143:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90835,"nodeType":"ExpressionStatement","src":"3228:143:149"}]},"baseFunctions":[111084],"documentation":{"id":90814,"nodeType":"StructuredDocumentation","src":"3097:72:149","text":"@notice Allows EOAs to bridge ETH by sending directly to the bridge."},"implemented":true,"kind":"receive","modifiers":[{"id":90818,"kind":"modifierInvocation","modifierName":{"id":90817,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":111034,"src":"3210:7:149"},"nodeType":"ModifierInvocation","src":"3210:7:149"}],"name":"","nameLocation":"-1:-1:-1","overrides":{"id":90816,"nodeType":"OverrideSpecifier","overrides":[],"src":"3201:8:149"},"parameters":{"id":90815,"nodeType":"ParameterList","parameters":[],"src":"3181:2:149"},"returnParameters":{"id":90819,"nodeType":"ParameterList","parameters":[],"src":"3218:0:149"},"scope":91146,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":90863,"nodeType":"FunctionDefinition","src":"3897:313:149","nodes":[],"body":{"id":90862,"nodeType":"Block","src":"4105:105:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":90852,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90840,"src":"4135:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90853,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4145:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4145:10:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4157:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4157:10:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90857,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90842,"src":"4169:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90858,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90844,"src":"4178:12:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":90859,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90846,"src":"4192:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90851,"name":"_initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90997,"src":"4115:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint32,bytes memory)"}},"id":90860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4115:88:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90861,"nodeType":"ExpressionStatement","src":"4115:88:149"}]},"documentation":{"id":90838,"nodeType":"StructuredDocumentation","src":"3384:508:149","text":"@custom:legacy\n @notice Initiates a withdrawal from L2 to L1.\n This function only works with OptimismMintableERC20 tokens or ether. Use the\n `bridgeERC20` function to bridge native L2 tokens to L1.\n @param _l2Token Address of the L2 token to withdraw.\n @param _amount Amount of the L2 token to withdraw.\n @param _minGasLimit Minimum gas limit to use for the transaction.\n @param _extraData Extra data attached to the withdrawal."},"functionSelector":"32b7006d","implemented":true,"kind":"function","modifiers":[{"id":90849,"kind":"modifierInvocation","modifierName":{"id":90848,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":111034,"src":"4093:7:149"},"nodeType":"ModifierInvocation","src":"4093:7:149"}],"name":"withdraw","nameLocation":"3906:8:149","parameters":{"id":90847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90840,"mutability":"mutable","name":"_l2Token","nameLocation":"3932:8:149","nodeType":"VariableDeclaration","scope":90863,"src":"3924:16:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90839,"name":"address","nodeType":"ElementaryTypeName","src":"3924:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90842,"mutability":"mutable","name":"_amount","nameLocation":"3958:7:149","nodeType":"VariableDeclaration","scope":90863,"src":"3950:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3950:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90844,"mutability":"mutable","name":"_minGasLimit","nameLocation":"3982:12:149","nodeType":"VariableDeclaration","scope":90863,"src":"3975:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90843,"name":"uint32","nodeType":"ElementaryTypeName","src":"3975:6:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90846,"mutability":"mutable","name":"_extraData","nameLocation":"4019:10:149","nodeType":"VariableDeclaration","scope":90863,"src":"4004:25:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90845,"name":"bytes","nodeType":"ElementaryTypeName","src":"4004:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3914:121:149"},"returnParameters":{"id":90850,"nodeType":"ParameterList","parameters":[],"src":"4105:0:149"},"scope":91146,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":90888,"nodeType":"FunctionDefinition","src":"5197:313:149","nodes":[],"body":{"id":90887,"nodeType":"Block","src":"5412:98:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":90878,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90866,"src":"5442:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":90879,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5452:3:149","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5452:10:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90881,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90868,"src":"5464:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90882,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90870,"src":"5469:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90883,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90872,"src":"5478:12:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":90884,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90874,"src":"5492:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90877,"name":"_initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90997,"src":"5422:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint32,bytes memory)"}},"id":90885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5422:81:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90886,"nodeType":"ExpressionStatement","src":"5422:81:149"}]},"documentation":{"id":90864,"nodeType":"StructuredDocumentation","src":"4216:976:149","text":"@custom:legacy\n @notice Initiates a withdrawal from L2 to L1 to a target account on L1.\n Note that if ETH is sent to a contract on L1 and the call fails, then that ETH will\n be locked in the L1StandardBridge. ETH may be recoverable if the call can be\n successfully replayed by increasing the amount of gas supplied to the call. If the\n call will fail for any amount of gas, then the ETH will be locked permanently.\n This function only works with OptimismMintableERC20 tokens or ether. Use the\n `bridgeERC20To` function to bridge native L2 tokens to L1.\n @param _l2Token Address of the L2 token to withdraw.\n @param _to Recipient account on L1.\n @param _amount Amount of the L2 token to withdraw.\n @param _minGasLimit Minimum gas limit to use for the transaction.\n @param _extraData Extra data attached to the withdrawal."},"functionSelector":"a3a79548","implemented":true,"kind":"function","modifiers":[],"name":"withdrawTo","nameLocation":"5206:10:149","parameters":{"id":90875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90866,"mutability":"mutable","name":"_l2Token","nameLocation":"5234:8:149","nodeType":"VariableDeclaration","scope":90888,"src":"5226:16:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90865,"name":"address","nodeType":"ElementaryTypeName","src":"5226:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90868,"mutability":"mutable","name":"_to","nameLocation":"5260:3:149","nodeType":"VariableDeclaration","scope":90888,"src":"5252:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90867,"name":"address","nodeType":"ElementaryTypeName","src":"5252:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90870,"mutability":"mutable","name":"_amount","nameLocation":"5281:7:149","nodeType":"VariableDeclaration","scope":90888,"src":"5273:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90869,"name":"uint256","nodeType":"ElementaryTypeName","src":"5273:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90872,"mutability":"mutable","name":"_minGasLimit","nameLocation":"5305:12:149","nodeType":"VariableDeclaration","scope":90888,"src":"5298:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90871,"name":"uint32","nodeType":"ElementaryTypeName","src":"5298:6:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90874,"mutability":"mutable","name":"_extraData","nameLocation":"5342:10:149","nodeType":"VariableDeclaration","scope":90888,"src":"5327:25:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90873,"name":"bytes","nodeType":"ElementaryTypeName","src":"5327:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5216:142:149"},"returnParameters":{"id":90876,"nodeType":"ParameterList","parameters":[],"src":"5412:0:149"},"scope":91146,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":90935,"nodeType":"FunctionDefinition","src":"6087:505:149","nodes":[],"body":{"id":90934,"nodeType":"Block","src":"6327:265:149","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":90914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90904,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90891,"src":"6341:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":90907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6361:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6353:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90905,"name":"address","nodeType":"ElementaryTypeName","src":"6353:7:149","typeDescriptions":{}}},"id":90908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6353:10:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6341:22:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90910,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90893,"src":"6367:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":90911,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"6379:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"LEGACY_ERC20_ETH","nodeType":"MemberAccess","referencedDeclaration":104047,"src":"6379:27:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6367:39:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6341:65:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":90932,"nodeType":"Block","src":"6489:97:149","statements":[{"expression":{"arguments":[{"id":90924,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90893,"src":"6523:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90925,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90891,"src":"6533:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90926,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90895,"src":"6543:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90927,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90897,"src":"6550:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90928,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90899,"src":"6555:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90929,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90901,"src":"6564:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90923,"name":"finalizeBridgeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111367,"src":"6503:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes calldata)"}},"id":90930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6503:72:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90931,"nodeType":"ExpressionStatement","src":"6503:72:149"}]},"id":90933,"nodeType":"IfStatement","src":"6337:249:149","trueBody":{"id":90922,"nodeType":"Block","src":"6408:75:149","statements":[{"expression":{"arguments":[{"id":90916,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90895,"src":"6440:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90917,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90897,"src":"6447:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90918,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90899,"src":"6452:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90919,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90901,"src":"6461:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90915,"name":"finalizeBridgeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111287,"src":"6422:17:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes calldata)"}},"id":90920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:50:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90921,"nodeType":"ExpressionStatement","src":"6422:50:149"}]}}]},"documentation":{"id":90889,"nodeType":"StructuredDocumentation","src":"5516:566:149","text":"@custom:legacy\n @notice Finalizes a deposit from L1 to L2. To finalize a deposit of ether, use address(0)\n and the l1Token and the Legacy ERC20 ether predeploy address as the l2Token.\n @param _l1Token Address of the L1 token to deposit.\n @param _l2Token Address of the corresponding L2 token.\n @param _from Address of the depositor.\n @param _to Address of the recipient.\n @param _amount Amount of the tokens being deposited.\n @param _extraData Extra data attached to the deposit."},"functionSelector":"662a633a","implemented":true,"kind":"function","modifiers":[],"name":"finalizeDeposit","nameLocation":"6096:15:149","parameters":{"id":90902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90891,"mutability":"mutable","name":"_l1Token","nameLocation":"6129:8:149","nodeType":"VariableDeclaration","scope":90935,"src":"6121:16:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90890,"name":"address","nodeType":"ElementaryTypeName","src":"6121:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90893,"mutability":"mutable","name":"_l2Token","nameLocation":"6155:8:149","nodeType":"VariableDeclaration","scope":90935,"src":"6147:16:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90892,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90895,"mutability":"mutable","name":"_from","nameLocation":"6181:5:149","nodeType":"VariableDeclaration","scope":90935,"src":"6173:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90894,"name":"address","nodeType":"ElementaryTypeName","src":"6173:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90897,"mutability":"mutable","name":"_to","nameLocation":"6204:3:149","nodeType":"VariableDeclaration","scope":90935,"src":"6196:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90896,"name":"address","nodeType":"ElementaryTypeName","src":"6196:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90899,"mutability":"mutable","name":"_amount","nameLocation":"6225:7:149","nodeType":"VariableDeclaration","scope":90935,"src":"6217:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90898,"name":"uint256","nodeType":"ElementaryTypeName","src":"6217:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90901,"mutability":"mutable","name":"_extraData","nameLocation":"6257:10:149","nodeType":"VariableDeclaration","scope":90935,"src":"6242:25:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90900,"name":"bytes","nodeType":"ElementaryTypeName","src":"6242:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6111:162:149"},"returnParameters":{"id":90903,"nodeType":"ParameterList","parameters":[],"src":"6327:0:149"},"scope":91146,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":90947,"nodeType":"FunctionDefinition","src":"6764:101:149","nodes":[],"body":{"id":90946,"nodeType":"Block","src":"6821:44:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":90943,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110962,"src":"6846:11:149","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6838:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90941,"name":"address","nodeType":"ElementaryTypeName","src":"6838:7:149","typeDescriptions":{}}},"id":90944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6838:20:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":90940,"id":90945,"nodeType":"Return","src":"6831:27:149"}]},"documentation":{"id":90936,"nodeType":"StructuredDocumentation","src":"6598:161:149","text":"@custom:legacy\n @notice Retrieves the access of the corresponding L1 bridge contract.\n @return Address of the corresponding L1 bridge contract."},"functionSelector":"36c717c1","implemented":true,"kind":"function","modifiers":[],"name":"l1TokenBridge","nameLocation":"6773:13:149","parameters":{"id":90937,"nodeType":"ParameterList","parameters":[],"src":"6786:2:149"},"returnParameters":{"id":90940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90947,"src":"6812:7:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90938,"name":"address","nodeType":"ElementaryTypeName","src":"6812:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6811:9:149"},"scope":91146,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90997,"nodeType":"FunctionDefinition","src":"7372:554:149","nodes":[],"body":{"id":90996,"nodeType":"Block","src":"7585:341:149","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90963,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90950,"src":"7599:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":90964,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"7611:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"LEGACY_ERC20_ETH","nodeType":"MemberAccess","referencedDeclaration":104047,"src":"7611:27:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:39:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":90994,"nodeType":"Block","src":"7736:184:149","statements":[{"assignments":[90977],"declarations":[{"constant":false,"id":90977,"mutability":"mutable","name":"l1Token","nameLocation":"7758:7:149","nodeType":"VariableDeclaration","scope":90994,"src":"7750:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90976,"name":"address","nodeType":"ElementaryTypeName","src":"7750:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":90983,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":90979,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90950,"src":"7790:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90978,"name":"OptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109645,"src":"7768:21:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptimismMintableERC20_$109645_$","typeString":"type(contract OptimismMintableERC20)"}},"id":90980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7768:31:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}},"id":90981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1Token","nodeType":"MemberAccess","referencedDeclaration":109607,"src":"7768:39:149","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":90982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7768:41:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7750:59:149"},{"expression":{"arguments":[{"id":90985,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90950,"src":"7844:8:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90986,"name":"l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90977,"src":"7854:7:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90987,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90952,"src":"7863:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90988,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90954,"src":"7870:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90989,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90956,"src":"7875:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90990,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90958,"src":"7884:12:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":90991,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90960,"src":"7898:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90984,"name":"_initiateBridgeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111517,"src":"7823:20:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes memory)"}},"id":90992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:86:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90993,"nodeType":"ExpressionStatement","src":"7823:86:149"}]},"id":90995,"nodeType":"IfStatement","src":"7595:325:149","trueBody":{"id":90975,"nodeType":"Block","src":"7640:90:149","statements":[{"expression":{"arguments":[{"id":90968,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90952,"src":"7673:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90969,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90954,"src":"7680:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90970,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90956,"src":"7685:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90971,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90958,"src":"7694:12:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":90972,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90960,"src":"7708:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90967,"name":"_initiateBridgeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111419,"src":"7654:18:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint32,bytes memory)"}},"id":90973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7654:65:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90974,"nodeType":"ExpressionStatement","src":"7654:65:149"}]}}]},"documentation":{"id":90948,"nodeType":"StructuredDocumentation","src":"6871:496:149","text":"@custom:legacy\n @notice Internal function to initiate a withdrawal from L2 to L1 to a target account on L1.\n @param _l2Token Address of the L2 token to withdraw.\n @param _from Address of the withdrawer.\n @param _to Recipient account on L1.\n @param _amount Amount of the L2 token to withdraw.\n @param _minGasLimit Minimum gas limit to use for the transaction.\n @param _extraData Extra data attached to the withdrawal."},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateWithdrawal","nameLocation":"7381:19:149","parameters":{"id":90961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90950,"mutability":"mutable","name":"_l2Token","nameLocation":"7418:8:149","nodeType":"VariableDeclaration","scope":90997,"src":"7410:16:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90949,"name":"address","nodeType":"ElementaryTypeName","src":"7410:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90952,"mutability":"mutable","name":"_from","nameLocation":"7444:5:149","nodeType":"VariableDeclaration","scope":90997,"src":"7436:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90951,"name":"address","nodeType":"ElementaryTypeName","src":"7436:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90954,"mutability":"mutable","name":"_to","nameLocation":"7467:3:149","nodeType":"VariableDeclaration","scope":90997,"src":"7459:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90953,"name":"address","nodeType":"ElementaryTypeName","src":"7459:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90956,"mutability":"mutable","name":"_amount","nameLocation":"7488:7:149","nodeType":"VariableDeclaration","scope":90997,"src":"7480:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90955,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90958,"mutability":"mutable","name":"_minGasLimit","nameLocation":"7512:12:149","nodeType":"VariableDeclaration","scope":90997,"src":"7505:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90957,"name":"uint32","nodeType":"ElementaryTypeName","src":"7505:6:149","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90960,"mutability":"mutable","name":"_extraData","nameLocation":"7547:10:149","nodeType":"VariableDeclaration","scope":90997,"src":"7534:23:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90959,"name":"bytes","nodeType":"ElementaryTypeName","src":"7534:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7400:163:149"},"returnParameters":{"id":90962,"nodeType":"ParameterList","parameters":[],"src":"7585:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":91033,"nodeType":"FunctionDefinition","src":"8154:366:149","nodes":[],"body":{"id":91032,"nodeType":"Block","src":"8333:187:149","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":91013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8376:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8368:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91011,"name":"address","nodeType":"ElementaryTypeName","src":"8368:7:149","typeDescriptions":{}}},"id":91014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8368:10:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91015,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"8380:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":91016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"LEGACY_ERC20_ETH","nodeType":"MemberAccess","referencedDeclaration":104047,"src":"8380:27:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91017,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91000,"src":"8409:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91018,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91002,"src":"8416:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91019,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91004,"src":"8421:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91020,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91006,"src":"8430:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91010,"name":"WithdrawalInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90757,"src":"8348:19:149","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8348:93:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91022,"nodeType":"EmitStatement","src":"8343:98:149"},{"expression":{"arguments":[{"id":91026,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91000,"src":"8481:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91027,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91002,"src":"8488:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91028,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91004,"src":"8493:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91029,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91006,"src":"8502:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91023,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"8451:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L2StandardBridge_$91146_$","typeString":"type(contract super L2StandardBridge)"}},"id":91025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitETHBridgeInitiated","nodeType":"MemberAccess","referencedDeclaration":111602,"src":"8451:29:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":91030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8451:62:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91031,"nodeType":"ExpressionStatement","src":"8451:62:149"}]},"baseFunctions":[111602],"documentation":{"id":90998,"nodeType":"StructuredDocumentation","src":"7932:217:149","text":"@notice Emits the legacy WithdrawalInitiated event followed by the ETHBridgeInitiated event.\n This is necessary for backwards compatibility with the legacy bridge.\n @inheritdoc StandardBridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_emitETHBridgeInitiated","nameLocation":"8163:23:149","overrides":{"id":91008,"nodeType":"OverrideSpecifier","overrides":[],"src":"8320:8:149"},"parameters":{"id":91007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91000,"mutability":"mutable","name":"_from","nameLocation":"8204:5:149","nodeType":"VariableDeclaration","scope":91033,"src":"8196:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90999,"name":"address","nodeType":"ElementaryTypeName","src":"8196:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91002,"mutability":"mutable","name":"_to","nameLocation":"8227:3:149","nodeType":"VariableDeclaration","scope":91033,"src":"8219:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91001,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91004,"mutability":"mutable","name":"_amount","nameLocation":"8248:7:149","nodeType":"VariableDeclaration","scope":91033,"src":"8240:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91003,"name":"uint256","nodeType":"ElementaryTypeName","src":"8240:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91006,"mutability":"mutable","name":"_extraData","nameLocation":"8278:10:149","nodeType":"VariableDeclaration","scope":91033,"src":"8265:23:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91005,"name":"bytes","nodeType":"ElementaryTypeName","src":"8265:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8186:108:149"},"returnParameters":{"id":91009,"nodeType":"ParameterList","parameters":[],"src":"8333:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":91069,"nodeType":"FunctionDefinition","src":"8745:363:149","nodes":[],"body":{"id":91068,"nodeType":"Block","src":"8924:184:149","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":91049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8964:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8956:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91047,"name":"address","nodeType":"ElementaryTypeName","src":"8956:7:149","typeDescriptions":{}}},"id":91050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8956:10:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91051,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"8968:10:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":91052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"LEGACY_ERC20_ETH","nodeType":"MemberAccess","referencedDeclaration":104047,"src":"8968:27:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91053,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91036,"src":"8997:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91054,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91038,"src":"9004:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91055,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91040,"src":"9009:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91056,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91042,"src":"9018:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91046,"name":"DepositFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90772,"src":"8939:16:149","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8939:90:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91058,"nodeType":"EmitStatement","src":"8934:95:149"},{"expression":{"arguments":[{"id":91062,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91036,"src":"9069:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91063,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91038,"src":"9076:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91064,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91040,"src":"9081:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91065,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91042,"src":"9090:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91059,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9039:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L2StandardBridge_$91146_$","typeString":"type(contract super L2StandardBridge)"}},"id":91061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitETHBridgeFinalized","nodeType":"MemberAccess","referencedDeclaration":111622,"src":"9039:29:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":91066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9039:62:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91067,"nodeType":"ExpressionStatement","src":"9039:62:149"}]},"baseFunctions":[111622],"documentation":{"id":91034,"nodeType":"StructuredDocumentation","src":"8526:214:149","text":"@notice Emits the legacy DepositFinalized event followed by the ETHBridgeFinalized event.\n This is necessary for backwards compatibility with the legacy bridge.\n @inheritdoc StandardBridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_emitETHBridgeFinalized","nameLocation":"8754:23:149","overrides":{"id":91044,"nodeType":"OverrideSpecifier","overrides":[],"src":"8911:8:149"},"parameters":{"id":91043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91036,"mutability":"mutable","name":"_from","nameLocation":"8795:5:149","nodeType":"VariableDeclaration","scope":91069,"src":"8787:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91035,"name":"address","nodeType":"ElementaryTypeName","src":"8787:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91038,"mutability":"mutable","name":"_to","nameLocation":"8818:3:149","nodeType":"VariableDeclaration","scope":91069,"src":"8810:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91037,"name":"address","nodeType":"ElementaryTypeName","src":"8810:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91040,"mutability":"mutable","name":"_amount","nameLocation":"8839:7:149","nodeType":"VariableDeclaration","scope":91069,"src":"8831:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91039,"name":"uint256","nodeType":"ElementaryTypeName","src":"8831:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91042,"mutability":"mutable","name":"_extraData","nameLocation":"8869:10:149","nodeType":"VariableDeclaration","scope":91069,"src":"8856:23:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91041,"name":"bytes","nodeType":"ElementaryTypeName","src":"8856:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8777:108:149"},"returnParameters":{"id":91045,"nodeType":"ParameterList","parameters":[],"src":"8924:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":91107,"nodeType":"FunctionDefinition","src":"9338:442:149","nodes":[],"body":{"id":91106,"nodeType":"Block","src":"9578:202:149","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":91087,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91074,"src":"9613:12:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91088,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91072,"src":"9627:11:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91089,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91076,"src":"9640:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91090,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91078,"src":"9647:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91091,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91080,"src":"9652:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91092,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91082,"src":"9661:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91086,"name":"WithdrawalInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90757,"src":"9593:19:149","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9593:79:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91094,"nodeType":"EmitStatement","src":"9588:84:149"},{"expression":{"arguments":[{"id":91098,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91072,"src":"9714:11:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91099,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91074,"src":"9727:12:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91100,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91076,"src":"9741:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91101,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91078,"src":"9748:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91102,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91080,"src":"9753:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91103,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91082,"src":"9762:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91095,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9682:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L2StandardBridge_$91146_$","typeString":"type(contract super L2StandardBridge)"}},"id":91097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitERC20BridgeInitiated","nodeType":"MemberAccess","referencedDeclaration":111648,"src":"9682:31:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9682:91:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91105,"nodeType":"ExpressionStatement","src":"9682:91:149"}]},"baseFunctions":[111648],"documentation":{"id":91070,"nodeType":"StructuredDocumentation","src":"9114:219:149","text":"@notice Emits the legacy WithdrawalInitiated event followed by the ERC20BridgeInitiated\n event. This is necessary for backwards compatibility with the legacy bridge.\n @inheritdoc StandardBridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_emitERC20BridgeInitiated","nameLocation":"9347:25:149","overrides":{"id":91084,"nodeType":"OverrideSpecifier","overrides":[],"src":"9565:8:149"},"parameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91072,"mutability":"mutable","name":"_localToken","nameLocation":"9390:11:149","nodeType":"VariableDeclaration","scope":91107,"src":"9382:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91071,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91074,"mutability":"mutable","name":"_remoteToken","nameLocation":"9419:12:149","nodeType":"VariableDeclaration","scope":91107,"src":"9411:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91073,"name":"address","nodeType":"ElementaryTypeName","src":"9411:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91076,"mutability":"mutable","name":"_from","nameLocation":"9449:5:149","nodeType":"VariableDeclaration","scope":91107,"src":"9441:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91075,"name":"address","nodeType":"ElementaryTypeName","src":"9441:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_to","nameLocation":"9472:3:149","nodeType":"VariableDeclaration","scope":91107,"src":"9464:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91077,"name":"address","nodeType":"ElementaryTypeName","src":"9464:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91080,"mutability":"mutable","name":"_amount","nameLocation":"9493:7:149","nodeType":"VariableDeclaration","scope":91107,"src":"9485:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91079,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91082,"mutability":"mutable","name":"_extraData","nameLocation":"9523:10:149","nodeType":"VariableDeclaration","scope":91107,"src":"9510:23:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91081,"name":"bytes","nodeType":"ElementaryTypeName","src":"9510:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9372:167:149"},"returnParameters":{"id":91085,"nodeType":"ParameterList","parameters":[],"src":"9578:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":91145,"nodeType":"FunctionDefinition","src":"10007:439:149","nodes":[],"body":{"id":91144,"nodeType":"Block","src":"10247:199:149","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":91125,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91112,"src":"10279:12:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91126,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91110,"src":"10293:11:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91127,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91114,"src":"10306:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91128,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91116,"src":"10313:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91129,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91118,"src":"10318:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91130,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91120,"src":"10327:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91124,"name":"DepositFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90772,"src":"10262:16:149","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10262:76:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91132,"nodeType":"EmitStatement","src":"10257:81:149"},{"expression":{"arguments":[{"id":91136,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91110,"src":"10380:11:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91137,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91112,"src":"10393:12:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91138,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91114,"src":"10407:5:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91139,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91116,"src":"10414:3:149","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91140,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91118,"src":"10419:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91141,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91120,"src":"10428:10:149","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91133,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"10348:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_L2StandardBridge_$91146_$","typeString":"type(contract super L2StandardBridge)"}},"id":91135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_emitERC20BridgeFinalized","nodeType":"MemberAccess","referencedDeclaration":111674,"src":"10348:31:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":91142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10348:91:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91143,"nodeType":"ExpressionStatement","src":"10348:91:149"}]},"baseFunctions":[111674],"documentation":{"id":91108,"nodeType":"StructuredDocumentation","src":"9786:216:149","text":"@notice Emits the legacy DepositFinalized event followed by the ERC20BridgeFinalized event.\n This is necessary for backwards compatibility with the legacy bridge.\n @inheritdoc StandardBridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_emitERC20BridgeFinalized","nameLocation":"10016:25:149","overrides":{"id":91122,"nodeType":"OverrideSpecifier","overrides":[],"src":"10234:8:149"},"parameters":{"id":91121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91110,"mutability":"mutable","name":"_localToken","nameLocation":"10059:11:149","nodeType":"VariableDeclaration","scope":91145,"src":"10051:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91109,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91112,"mutability":"mutable","name":"_remoteToken","nameLocation":"10088:12:149","nodeType":"VariableDeclaration","scope":91145,"src":"10080:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91111,"name":"address","nodeType":"ElementaryTypeName","src":"10080:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91114,"mutability":"mutable","name":"_from","nameLocation":"10118:5:149","nodeType":"VariableDeclaration","scope":91145,"src":"10110:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91113,"name":"address","nodeType":"ElementaryTypeName","src":"10110:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91116,"mutability":"mutable","name":"_to","nameLocation":"10141:3:149","nodeType":"VariableDeclaration","scope":91145,"src":"10133:11:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91115,"name":"address","nodeType":"ElementaryTypeName","src":"10133:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91118,"mutability":"mutable","name":"_amount","nameLocation":"10162:7:149","nodeType":"VariableDeclaration","scope":91145,"src":"10154:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91117,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91120,"mutability":"mutable","name":"_extraData","nameLocation":"10192:10:149","nodeType":"VariableDeclaration","scope":91145,"src":"10179:23:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91119,"name":"bytes","nodeType":"ElementaryTypeName","src":"10179:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10041:167:149"},"returnParameters":{"id":91123,"nodeType":"ParameterList","parameters":[],"src":"10247:0:149"},"scope":91146,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":90739,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":111675,"src":"1170:14:149"},"id":90740,"nodeType":"InheritanceSpecifier","src":"1170:14:149"},{"baseName":{"id":90741,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1186:7:149"},"id":90742,"nodeType":"InheritanceSpecifier","src":"1186:7:149"}],"canonicalName":"L2StandardBridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":90738,"nodeType":"StructuredDocumentation","src":"454:687:149","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000010\n @title L2StandardBridge\n @notice The L2StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and\n L2. In the case that an ERC20 token is native to L2, it will be escrowed within this\n contract. If the ERC20 token is native to L1, it will be burnt.\n NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples\n of some token types that may not be properly supported by this contract include, but are\n not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists."},"fullyImplemented":true,"linearizedBaseContracts":[91146,109417,111675,49678],"name":"L2StandardBridge","nameLocation":"1150:16:149","scope":91147,"usedErrors":[]}],"license":"MIT"},"id":149} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/L2ToL1MessagePasser.json b/packages/sdk/src/forge-artifacts/L2ToL1MessagePasser.json new file mode 100644 index 000000000000..f7ed43e765c9 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/L2ToL1MessagePasser.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initiateWithdrawal","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"MessagePassed","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"withdrawalHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"WithdrawerBalanceBurnt","inputs":[{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506106d3806100206000396000f3fe6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2474:68;2493:10;911:7;2532:9;;;;;;;;;;;;2474:18;:68::i;:::-;722:3696;;;;;981:42;;;;;;;;;;;;1022:1;981:42;;;;;188:6:357;176:19;;;158:38;;146:2;131:18;981:42:150;;;;;;;;2915:154;;;;;;;;;;;;;:::i;2307:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1094:44::-;;;;;;;;;;-1:-1:-1;1094:44:150;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1318:14:357;;1311:22;1293:41;;1281:2;1266:18;1094:44:150;1153:187:357;3311:650:150;;;;;;:::i;:::-;;:::i;4282:134::-;;;;;;;;;;;;4383:8;;;;4855:18:195;4852:30;;4282:134:150;;;;2930:25:357;;;2918:2;2903:18;4282:134:150;2784:177:357;3311:650:150;3420:22;3445:297;3481:251;;;;;;;;3534:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3534:14;3481:251;;3574:10;3481:251;;;;;;;;;;;3642:9;3481:251;;;;;;;;;;;;;;;3445:22;:297::i;:::-;3753:12;:28;;;;;;;;;;:35;;;;3784:4;3753:35;;;3420:322;-1:-1:-1;3804:95:150;;;3834:10;3818:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3818:14;3804:95;3855:9;3866;3877:5;3884:14;3804:95;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3936:8:150;3934:10;;;;;;;;;;;;;;;;-1:-1:-1;;3311:650:150:o;2915:154::-;2968:21;2999:17;2968:21;2999:8;:17::i;:::-;3031:31;;3054:7;;3031:31;;;;;2940:129;2915:154::o;4456:211:196:-;4590:9;;4601:10;;;;;4613;;;;;4625:9;;;;4636:12;;;;4650:8;;;;4579:80;;4543:7;;4579:80;;4590:9;;4601:10;4650:8;4579:80;;:::i;:::-;;;;;;;;;;;;;4569:91;;;;;;4562:98;;4456:211;;;:::o;224:86:190:-;292:7;273:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;224:86;:::o;-1:-1:-1:-;;;;;;;;:::o;207:531:357:-;249:3;287:5;281:12;314:6;309:3;302:19;339:1;349:162;363:6;360:1;357:13;349:162;;;425:4;481:13;;;477:22;;471:29;453:11;;;449:20;;442:59;378:12;349:162;;;529:6;526:1;523:13;520:87;;;595:1;588:4;579:6;574:3;570:16;566:27;559:38;520:87;-1:-1:-1;652:2:357;640:15;657:66;636:88;627:98;;;;727:4;623:109;;207:531;-1:-1:-1;;207:531:357:o;743:220::-;892:2;881:9;874:21;855:4;912:45;953:2;942:9;938:18;930:6;912:45;:::i;:::-;904:53;743:220;-1:-1:-1;;;743:220:357:o;968:180::-;1027:6;1080:2;1068:9;1059:7;1055:23;1051:32;1048:52;;;1096:1;1093;1086:12;1048:52;-1:-1:-1;1119:23:357;;968:180;-1:-1:-1;968:180:357:o;1345:184::-;1397:77;1394:1;1387:88;1494:4;1491:1;1484:15;1518:4;1515:1;1508:15;1534:1245;1620:6;1628;1636;1689:2;1677:9;1668:7;1664:23;1660:32;1657:52;;;1705:1;1702;1695:12;1657:52;1744:9;1731:23;1794:42;1787:5;1783:54;1776:5;1773:65;1763:93;;1852:1;1849;1842:12;1763:93;1875:5;-1:-1:-1;1927:2:357;1912:18;;1899:32;;-1:-1:-1;1982:2:357;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2365:2;2359:9;2427:4;2419:13;;2270:66;2415:22;;;2439:2;2411:31;2407:40;2395:53;;;2463:18;;;2483:22;;;2460:46;2457:72;;;2509:18;;:::i;:::-;2549:10;2545:2;2538:22;2584:2;2576:6;2569:18;2624:7;2619:2;2614;2610;2606:11;2602:20;2599:33;2596:53;;;2645:1;2642;2635:12;2596:53;2701:2;2696;2692;2688:11;2683:2;2675:6;2671:15;2658:46;2746:1;2741:2;2736;2728:6;2724:15;2720:24;2713:35;2767:6;2757:16;;;;;;;1534:1245;;;;;:::o;2966:433::-;3197:6;3186:9;3179:25;3240:6;3235:2;3224:9;3220:18;3213:34;3283:3;3278:2;3267:9;3263:18;3256:31;3160:4;3304:46;3345:3;3334:9;3330:19;3322:6;3304:46;:::i;:::-;3296:54;;3386:6;3381:2;3370:9;3366:18;3359:34;2966:433;;;;;;;:::o;3404:656::-;3691:6;3680:9;3673:25;3654:4;3717:42;3807:2;3799:6;3795:15;3790:2;3779:9;3775:18;3768:43;3859:2;3851:6;3847:15;3842:2;3831:9;3827:18;3820:43;;3899:6;3894:2;3883:9;3879:18;3872:34;3943:6;3937:3;3926:9;3922:19;3915:35;3987:3;3981;3970:9;3966:19;3959:32;4008:46;4049:3;4038:9;4034:19;4026:6;4008:46;:::i;:::-;4000:54;3404:656;-1:-1:-1;;;;;;;;3404:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","burn()":"44df8e70","initiateWithdrawal(address,uint256,bytes)":"c2b3e5ac","messageNonce()":"ecc70428","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"}],\"name\":\"MessagePassed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawerBalanceBurnt\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initiateWithdrawal\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000016\",\"events\":{\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\":{\"params\":{\"data\":\"The data to be forwarded to the target on L1.\",\"gasLimit\":\"The minimum amount of gas that must be provided when withdrawing.\",\"nonce\":\"Unique value corresponding to each withdrawal.\",\"sender\":\"The L2 account address which initiated the withdrawal.\",\"target\":\"The L1 account address the call will be send to.\",\"value\":\"The ETH value submitted for withdrawal, to be forwarded to the target.\",\"withdrawalHash\":\"The hash of the withdrawal.\"}},\"WithdrawerBalanceBurnt(uint256)\":{\"params\":{\"amount\":\"Amount of ETh that was burned.\"}}},\"kind\":\"dev\",\"methods\":{\"initiateWithdrawal(address,uint256,bytes)\":{\"params\":{\"_data\":\"Data to forward to L1 target.\",\"_gasLimit\":\"Minimum gas limit for executing the message on L1.\",\"_target\":\"Address to call on L1 execution.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L2ToL1MessagePasser\",\"version\":1},\"userdoc\":{\"events\":{\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\":{\"notice\":\"Emitted any time a withdrawal is initiated.\"},\"WithdrawerBalanceBurnt(uint256)\":{\"notice\":\"Emitted when the balance of this contract is burned.\"}},\"kind\":\"user\",\"methods\":{\"MESSAGE_VERSION()\":{\"notice\":\"The current message version identifier.\"},\"burn()\":{\"notice\":\"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap.\"},\"initiateWithdrawal(address,uint256,bytes)\":{\"notice\":\"Sends a message from L2 to L1.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\"},\"sentMessages(bytes32)\":{\"notice\":\"Includes the message hashes for all withdrawals\"}},\"notice\":\"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2ToL1MessagePasser.sol\":\"L2ToL1MessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":false}],"type":"event","name":"MessagePassed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"WithdrawerBalanceBurnt","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"initiateWithdrawal"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ToL1MessagePasser.sol":"L2ToL1MessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":91174,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"},{"astId":91177,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"msgNonce","offset":0,"slot":"1","type":"t_uint240"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"notice":"Emitted any time a withdrawal is initiated."},"WithdrawerBalanceBurnt(uint256)":{"notice":"Emitted when the balance of this contract is burned."}},"notice":"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages."},"devdoc":{"version":1,"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"params":{"data":"The data to be forwarded to the target on L1.","gasLimit":"The minimum amount of gas that must be provided when withdrawing.","nonce":"Unique value corresponding to each withdrawal.","sender":"The L2 account address which initiated the withdrawal.","target":"The L1 account address the call will be send to.","value":"The ETH value submitted for withdrawal, to be forwarded to the target.","withdrawalHash":"The hash of the withdrawal."}},"WithdrawerBalanceBurnt(uint256)":{"params":{"amount":"Amount of ETh that was burned."}}},"title":"L2ToL1MessagePasser"},"ast":{"absolutePath":"src/L2/L2ToL1MessagePasser.sol","id":91308,"exportedSymbols":{"Burn":[102909],"Encoding":[103714],"Hashing":[103936],"ISemver":[109417],"L2ToL1MessagePasser":[91307],"Types":[104349]},"nodeType":"SourceUnit","src":"32:4387:150","nodes":[{"id":91148,"nodeType":"PragmaDirective","src":"32:23:150","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91150,"nodeType":"ImportDirective","src":"57:48:150","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":91149,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"66:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91152,"nodeType":"ImportDirective","src":"106:52:150","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103937,"symbolAliases":[{"foreign":{"id":91151,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"115:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91154,"nodeType":"ImportDirective","src":"159:54:150","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103715,"symbolAliases":[{"foreign":{"id":91153,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"168:8:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91156,"nodeType":"ImportDirective","src":"214:46:150","nodes":[],"absolutePath":"src/libraries/Burn.sol","file":"src/libraries/Burn.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":102926,"symbolAliases":[{"foreign":{"id":91155,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"223:4:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91158,"nodeType":"ImportDirective","src":"261:52:150","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":91157,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"270:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91307,"nodeType":"ContractDefinition","src":"722:3696:150","nodes":[{"id":91165,"nodeType":"VariableDeclaration","src":"857:61:150","nodes":[],"constant":true,"documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"768:84:150","text":"@notice The L1 gas limit set when eth is withdrawn using the receive() function."},"mutability":"constant","name":"RECEIVE_DEFAULT_GAS_LIMIT","nameLocation":"883:25:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91163,"name":"uint256","nodeType":"ElementaryTypeName","src":"857:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130305f303030","id":91164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:7:150","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"visibility":"internal"},{"id":91169,"nodeType":"VariableDeclaration","src":"981:42:150","nodes":[],"constant":true,"documentation":{"id":91166,"nodeType":"StructuredDocumentation","src":"925:51:150","text":"@notice The current message version identifier."},"functionSelector":"3f827a5a","mutability":"constant","name":"MESSAGE_VERSION","nameLocation":"1004:15:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":91167,"name":"uint16","nodeType":"ElementaryTypeName","src":"981:6:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":91168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:150","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":91174,"nodeType":"VariableDeclaration","src":"1094:44:150","nodes":[],"constant":false,"documentation":{"id":91170,"nodeType":"StructuredDocumentation","src":"1030:59:150","text":"@notice Includes the message hashes for all withdrawals"},"functionSelector":"82e3702d","mutability":"mutable","name":"sentMessages","nameLocation":"1126:12:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":91173,"keyType":{"id":91171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1102:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1094:24:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":91172,"name":"bool","nodeType":"ElementaryTypeName","src":"1113:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":91177,"nodeType":"VariableDeclaration","src":"1205:25:150","nodes":[],"constant":false,"documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"1145:55:150","text":"@notice A unique value hashed with each withdrawal."},"mutability":"mutable","name":"msgNonce","nameLocation":"1222:8:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":91176,"name":"uint240","nodeType":"ElementaryTypeName","src":"1205:7:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"},{"id":91194,"nodeType":"EventDefinition","src":"1869:222:150","nodes":[],"anonymous":false,"documentation":{"id":91178,"nodeType":"StructuredDocumentation","src":"1237:627:150","text":"@notice Emitted any time a withdrawal is initiated.\n @param nonce Unique value corresponding to each withdrawal.\n @param sender The L2 account address which initiated the withdrawal.\n @param target The L1 account address the call will be send to.\n @param value The ETH value submitted for withdrawal, to be forwarded to the target.\n @param gasLimit The minimum amount of gas that must be provided when withdrawing.\n @param data The data to be forwarded to the target on L1.\n @param withdrawalHash The hash of the withdrawal."},"eventSelector":"02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054","name":"MessagePassed","nameLocation":"1875:13:150","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91180,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"1914:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1898:21:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91179,"name":"uint256","nodeType":"ElementaryTypeName","src":"1898:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91182,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1945:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1929:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91181,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91184,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"1977:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1961:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91183,"name":"address","nodeType":"ElementaryTypeName","src":"1961:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91186,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2001:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1993:13:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91188,"indexed":false,"mutability":"mutable","name":"gasLimit","nameLocation":"2024:8:150","nodeType":"VariableDeclaration","scope":91194,"src":"2016:16:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91190,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2048:4:150","nodeType":"VariableDeclaration","scope":91194,"src":"2042:10:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91189,"name":"bytes","nodeType":"ElementaryTypeName","src":"2042:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":91192,"indexed":false,"mutability":"mutable","name":"withdrawalHash","nameLocation":"2070:14:150","nodeType":"VariableDeclaration","scope":91194,"src":"2062:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2062:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1888:202:150"}},{"id":91199,"nodeType":"EventDefinition","src":"2219:53:150","nodes":[],"anonymous":false,"documentation":{"id":91195,"nodeType":"StructuredDocumentation","src":"2097:117:150","text":"@notice Emitted when the balance of this contract is burned.\n @param amount Amount of ETh that was burned."},"eventSelector":"7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f","name":"WithdrawerBalanceBurnt","nameLocation":"2225:22:150","parameters":{"id":91198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91197,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"2264:6:150","nodeType":"VariableDeclaration","scope":91199,"src":"2248:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2247:24:150"}},{"id":91203,"nodeType":"VariableDeclaration","src":"2307:40:150","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":91200,"nodeType":"StructuredDocumentation","src":"2278:24:150","text":"@custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2330:7:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91201,"name":"string","nodeType":"ElementaryTypeName","src":"2307:6:150","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":91202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2340:7:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":91218,"nodeType":"FunctionDefinition","src":"2437:112:150","nodes":[],"body":{"id":91217,"nodeType":"Block","src":"2464:85:150","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":91208,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2493:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2493:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91210,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91165,"src":"2505:25:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":91213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:2:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":91212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2532:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":91211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2532:5:150","typeDescriptions":{}}},"id":91214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:9:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91207,"name":"initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91293,"src":"2474:18:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":91215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2474:68:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91216,"nodeType":"ExpressionStatement","src":"2474:68:150"}]},"documentation":{"id":91204,"nodeType":"StructuredDocumentation","src":"2354:78:150","text":"@notice Allows users to withdraw ETH by sending directly to this contract."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91205,"nodeType":"ParameterList","parameters":[],"src":"2444:2:150"},"returnParameters":{"id":91206,"nodeType":"ParameterList","parameters":[],"src":"2464:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":91241,"nodeType":"FunctionDefinition","src":"2915:154:150","nodes":[],"body":{"id":91240,"nodeType":"Block","src":"2940:129:150","nodes":[],"statements":[{"assignments":[91223],"declarations":[{"constant":false,"id":91223,"mutability":"mutable","name":"balance","nameLocation":"2958:7:150","nodeType":"VariableDeclaration","scope":91240,"src":"2950:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2950:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":91229,"initialValue":{"expression":{"arguments":[{"id":91226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2976:4:150","typeDescriptions":{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}],"id":91225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91224,"name":"address","nodeType":"ElementaryTypeName","src":"2968:7:150","typeDescriptions":{}}},"id":91227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2968:13:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2968:21:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2950:39:150"},{"expression":{"arguments":[{"id":91233,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3008:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":91230,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"2999:4:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Burn_$102909_$","typeString":"type(library Burn)"}},"id":91232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"eth","nodeType":"MemberAccess","referencedDeclaration":102881,"src":"2999:8:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91235,"nodeType":"ExpressionStatement","src":"2999:17:150"},{"eventCall":{"arguments":[{"id":91237,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3054:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":91236,"name":"WithdrawerBalanceBurnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91199,"src":"3031:22:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3031:31:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91239,"nodeType":"EmitStatement","src":"3026:36:150"}]},"documentation":{"id":91219,"nodeType":"StructuredDocumentation","src":"2555:355:150","text":"@notice Removes all ETH held by this contract from the state. Used to prevent the amount of\n ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to\n create a contract and self-destruct it to itself. Anyone can call this function. Not\n incentivized since this function is very cheap."},"functionSelector":"44df8e70","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2924:4:150","parameters":{"id":91220,"nodeType":"ParameterList","parameters":[],"src":"2928:2:150"},"returnParameters":{"id":91221,"nodeType":"ParameterList","parameters":[],"src":"2940:0:150"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91293,"nodeType":"FunctionDefinition","src":"3311:650:150","nodes":[],"body":{"id":91292,"nodeType":"Block","src":"3410:551:150","nodes":[],"statements":[{"assignments":[91252],"declarations":[{"constant":false,"id":91252,"mutability":"mutable","name":"withdrawalHash","nameLocation":"3428:14:150","nodeType":"VariableDeclaration","scope":91292,"src":"3420:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3420:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":91268,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91257,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3534:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3534:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3574:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3574:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91261,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3610:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3642:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3642:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91264,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3679:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91265,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3712:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91255,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"3481:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Types_$104349_$","typeString":"type(library Types)"}},"id":91256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WithdrawalTransaction","nodeType":"MemberAccess","referencedDeclaration":104348,"src":"3481:27:150","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_WithdrawalTransaction_$104348_storage_ptr_$","typeString":"type(struct Types.WithdrawalTransaction storage pointer)"}},"id":91266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nonce","sender","target","value","gasLimit","data"],"nodeType":"FunctionCall","src":"3481:251:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":91253,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"3445:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":91254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"3445:22:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":91267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:297:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3420:322:150"},{"expression":{"id":91273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":91269,"name":"sentMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"3753:12:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":91271,"indexExpression":{"id":91270,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3766:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3753:28:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":91272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3784:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3753:35:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91274,"nodeType":"ExpressionStatement","src":"3753:35:150"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91276,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3818:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3818:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91278,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3834:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3834:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91280,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3846:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3855:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3855:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91283,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3866:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91284,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3877:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":91285,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3884:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":91275,"name":"MessagePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91194,"src":"3804:13:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory,bytes32)"}},"id":91286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3804:95:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91287,"nodeType":"EmitStatement","src":"3799:100:150"},{"id":91291,"nodeType":"UncheckedBlock","src":"3910:45:150","statements":[{"expression":{"id":91289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3934:10:150","subExpression":{"id":91288,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"3936:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"id":91290,"nodeType":"ExpressionStatement","src":"3934:10:150"}]}]},"documentation":{"id":91242,"nodeType":"StructuredDocumentation","src":"3075:231:150","text":"@notice Sends a message from L2 to L1.\n @param _target Address to call on L1 execution.\n @param _gasLimit Minimum gas limit for executing the message on L1.\n @param _data Data to forward to L1 target."},"functionSelector":"c2b3e5ac","implemented":true,"kind":"function","modifiers":[],"name":"initiateWithdrawal","nameLocation":"3320:18:150","parameters":{"id":91249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91244,"mutability":"mutable","name":"_target","nameLocation":"3347:7:150","nodeType":"VariableDeclaration","scope":91293,"src":"3339:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91243,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91246,"mutability":"mutable","name":"_gasLimit","nameLocation":"3364:9:150","nodeType":"VariableDeclaration","scope":91293,"src":"3356:17:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91245,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91248,"mutability":"mutable","name":"_data","nameLocation":"3388:5:150","nodeType":"VariableDeclaration","scope":91293,"src":"3375:18:150","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91247,"name":"bytes","nodeType":"ElementaryTypeName","src":"3375:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3338:56:150"},"returnParameters":{"id":91250,"nodeType":"ParameterList","parameters":[],"src":"3410:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":91306,"nodeType":"FunctionDefinition","src":"4282:134:150","nodes":[],"body":{"id":91305,"nodeType":"Block","src":"4336:80:150","nodes":[],"statements":[{"expression":{"arguments":[{"id":91301,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"4383:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},{"id":91302,"name":"MESSAGE_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91169,"src":"4393:15:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint240","typeString":"uint240"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":91299,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"4353:8:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$103714_$","typeString":"type(library Encoding)"}},"id":91300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":103643,"src":"4353:29:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint240_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint240,uint16) pure returns (uint256)"}},"id":91303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4353:56:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":91298,"id":91304,"nodeType":"Return","src":"4346:63:150"}]},"documentation":{"id":91294,"nodeType":"StructuredDocumentation","src":"3967:310:150","text":"@notice Retrieves the next message nonce. Message version will be added to the upper two\n bytes of the message nonce. Message version allows us to treat messages as having\n different structures.\n @return Nonce of the next message to be sent, with added message version."},"functionSelector":"ecc70428","implemented":true,"kind":"function","modifiers":[],"name":"messageNonce","nameLocation":"4291:12:150","parameters":{"id":91295,"nodeType":"ParameterList","parameters":[],"src":"4303:2:150"},"returnParameters":{"id":91298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91306,"src":"4327:7:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4326:9:150"},"scope":91307,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91160,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"754:7:150"},"id":91161,"nodeType":"InheritanceSpecifier","src":"754:7:150"}],"canonicalName":"L2ToL1MessagePasser","contractDependencies":[102925],"contractKind":"contract","documentation":{"id":91159,"nodeType":"StructuredDocumentation","src":"315:407:150","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000016\n @title L2ToL1MessagePasser\n @notice The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from\n L2 to L1 can be stored. The storage root of this contract is pulled up to the top level\n of the L2 output to reduce the cost of proving the existence of sent messages."},"fullyImplemented":true,"linearizedBaseContracts":[91307,109417],"name":"L2ToL1MessagePasser","nameLocation":"731:19:150","scope":91308,"usedErrors":[]}],"license":"MIT"},"id":150} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/OptimismMintableERC20.json b/packages/sdk/src/forge-artifacts/OptimismMintableERC20.json new file mode 100644 index 000000000000..682ff763ac78 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/OptimismMintableERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_bridge","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2Bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b6000806000606084860312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000a","sourceMap":"833:4510:229:-:0;;;2268:292;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2440:5;2447:7;2044:5:45;:13;2440:5:229;2044::45;:13;:::i;:::-;-1:-1:-1;2067:7:45;:17;2077:7;2067;:17;:::i;:::-;-1:-1:-1;;;;;;;;2470:27:229;;::::1;;::::0;2507:16;;;::::1;;::::0;-1:-1:-1;;2533:20:229::1;;;::::0;833:4510;;14:177:357;93:13;;-1:-1:-1;;;;;135:31:357;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:885;382:5;435:3;428:4;420:6;416:17;412:27;402:55;;453:1;450;443:12;402:55;476:13;;-1:-1:-1;;;;;538:10:357;;;535:36;;;551:18;;:::i;:::-;626:2;620:9;594:2;680:13;;-1:-1:-1;;676:22:357;;;700:2;672:31;668:40;656:53;;;724:18;;;744:22;;;721:46;718:72;;;770:18;;:::i;:::-;810:10;806:2;799:22;845:2;837:6;830:18;867:4;857:14;;912:3;907:2;902;894:6;890:15;886:24;883:33;880:53;;;929:1;926;919:12;880:53;951:1;942:10;;961:133;975:2;972:1;969:9;961:133;;;1063:14;;;1059:23;;1053:30;1032:14;;;1028:23;;1021:63;986:10;;;;961:133;;;1112:2;1109:1;1106:9;1103:80;;;1171:1;1166:2;1161;1153:6;1149:15;1145:24;1138:35;1103:80;1201:6;328:885;-1:-1:-1;;;;;;328:885:357:o;1218:884::-;1342:6;1350;1358;1366;1374;1427:3;1415:9;1406:7;1402:23;1398:33;1395:53;;;1444:1;1441;1434:12;1395:53;1467:40;1497:9;1467:40;:::i;:::-;1457:50;;1526:49;1571:2;1560:9;1556:18;1526:49;:::i;:::-;1619:2;1604:18;;1598:25;1516:59;;-1:-1:-1;;;;;;1672:14:357;;;1669:34;;;1699:1;1696;1689:12;1669:34;1722:61;1775:7;1766:6;1755:9;1751:22;1722:61;:::i;:::-;1712:71;;1829:2;1818:9;1814:18;1808:25;1792:41;;1858:2;1848:8;1845:16;1842:36;;;1874:1;1871;1864:12;1842:36;;1897:63;1952:7;1941:8;1930:9;1926:24;1897:63;:::i;:::-;1887:73;;;2003:3;1992:9;1988:19;1982:26;2048:4;2041:5;2037:16;2030:5;2027:27;2017:55;;2068:1;2065;2058:12;2017:55;2091:5;2081:15;;;1218:884;;;;;;;;:::o;2107:380::-;2186:1;2182:12;;;;2229;;;2250:61;;2304:4;2296:6;2292:17;2282:27;;2250:61;2357:2;2349:6;2346:14;2326:18;2323:38;2320:161;;2403:10;2398:3;2394:20;2391:1;2384:31;2438:4;2435:1;2428:15;2466:4;2463:1;2456:15;2320:161;;2107:380;;;:::o;2618:545::-;2720:2;2715:3;2712:11;2709:448;;;2756:1;2781:5;2777:2;2770:17;2826:4;2822:2;2812:19;2896:2;2884:10;2880:19;2877:1;2873:27;2867:4;2863:38;2932:4;2920:10;2917:20;2914:47;;;-1:-1:-1;2955:4:357;2914:47;3010:2;3005:3;3001:12;2998:1;2994:20;2988:4;2984:31;2974:41;;3065:82;3083:2;3076:5;3073:13;3065:82;;;3128:17;;;3109:1;3098:13;3065:82;;;3069:3;;;2709:448;2618:545;;;:::o;3339:1352::-;3459:10;;-1:-1:-1;;;;;3481:30:357;;3478:56;;;3514:18;;:::i;:::-;3543:97;3633:6;3593:38;3625:4;3619:11;3593:38;:::i;:::-;3587:4;3543:97;:::i;:::-;3695:4;;3759:2;3748:14;;3776:1;3771:663;;;;4478:1;4495:6;4492:89;;;-1:-1:-1;4547:19:357;;;4541:26;4492:89;-1:-1:-1;;3296:1:357;3292:11;;;3288:24;3284:29;3274:40;3320:1;3316:11;;;3271:57;4594:81;;3741:944;;3771:663;2565:1;2558:14;;;2602:4;2589:18;;-1:-1:-1;;3807:20:357;;;3925:236;3939:7;3936:1;3933:14;3925:236;;;4028:19;;;4022:26;4007:42;;4120:27;;;;4088:1;4076:14;;;;3955:19;;3925:236;;;3929:3;4189:6;4180:7;4177:19;4174:201;;;4250:19;;;4244:26;-1:-1:-1;;4333:1:357;4329:14;;;4345:3;4325:24;4321:37;4317:42;4302:58;4287:74;;4174:201;-1:-1:-1;;;;;4421:1:357;4405:14;;;4401:22;4388:36;;-1:-1:-1;3339:1352:357:o;:::-;833:4510:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b6000806000606084860312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000a","sourceMap":"833:4510:229:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3616:519;;;;;;:::i;:::-;;:::i;:::-;;;516:14:357;;509:22;491:41;;479:2;464:18;3616:519:229;;;;;;;;1022:37;;;;;;;;719:42:357;707:55;;;689:74;;677:2;662:18;1022:37:229;543:226:357;2156:98:45;;;:::i;:::-;;;;;;;:::i;4433:197::-;;;;;;:::i;:::-;;:::i;3244:106::-;3331:12;;3244:106;;;2041:25:357;;;2029:2;2014:18;3244:106:45;1895:177:357;5192:286:45;;;;;;:::i;:::-;;:::i;5252:89:229:-;;;2582:4:357;5326:8:229;2570:17:357;2552:36;;2540:2;2525:18;5252:89:229;2410:184:357;5873:234:45;;;;;;:::i;:::-;;:::i;2739:254:229:-;;;;;;:::i;:::-;;:::i;:::-;;2009:40;;;;;;;;;;;;;;;;;;;;;3408:125:45;;;;;;:::i;:::-;3508:18;;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;3174:260:229:-;;;;;;:::i;:::-;;:::i;6594:427:45:-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;4434:80:229:-;4501:6;4434:80;;4248:85;4314:12;4248:85;;3976:149:45;;;;;;:::i;:::-;4091:18;;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;1129:31:229;;;;;3616:519;3695:4;3727:25;3844:38;3997:40;4054:22;;;;;;:48;;-1:-1:-1;4080:22:229;;;;;;;;4054:48;:74;;;-1:-1:-1;4106:22:229;;;;;;;;4054:74;4047:81;3616:519;-1:-1:-1;;;;;3616:519:229:o;2156:98:45:-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:60;4570:32:45;719:10:60;4586:7:45;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:45;;4433:197;-1:-1:-1;;;4433:197:45:o;5192:286::-;5319:4;719:10:60;5375:38:45;5391:4;719:10:60;5406:6:45;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:45;;5192:286;-1:-1:-1;;;;5192:286:45:o;5873:234::-;719:10:60;5961:4:45;4091:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;5961:4;;719:10:60;6015:64:45;;719:10:60;;4091:27:45;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2739:254:229:-;1845:10;:20;1859:6;1845:20;;1837:85;;;;;;;4021:2:357;1837:85:229;;;4003:21:357;4060:2;4040:18;;;4033:30;4099:34;4079:18;;;4072:62;4170:22;4150:18;;;4143:50;4210:19;;1837:85:229;;;;;;;;;2934:19:::1;2940:3;2945:7;2934:5;:19::i;:::-;2973:3;2968:18;;;2978:7;2968:18;;;;2041:25:357::0;;2029:2;2014:18;;1895:177;2968:18:229::1;;;;;;;;2739:254:::0;;:::o;2367:102:45:-;2423:13;2455:7;2448:14;;;;;:::i;3174:260:229:-;1845:10;:20;1859:6;1845:20;;1837:85;;;;;;;4021:2:357;1837:85:229;;;4003:21:357;4060:2;4040:18;;;4033:30;4099:34;4079:18;;;4072:62;4170:22;4150:18;;;4143:50;4210:19;;1837:85:229;3819:416:357;1837:85:229;3371:21:::1;3377:5;3384:7;3371:5;:21::i;:::-;3412:5;3407:20;;;3419:7;3407:20;;;;2041:25:357::0;;2029:2;2014:18;;1895:177;6594:427:45;719:10:60;6687:4:45;4091:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;6687:4;;719:10:60;6831:15:45;6811:16;:35;;6803:85;;;;;;;4442:2:357;6803:85:45;;;4424:21:357;4481:2;4461:18;;;4454:30;4520:34;4500:18;;;4493:62;4591:7;4571:18;;;4564:35;4616:19;;6803:85:45;4240:401:357;6803:85:45;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:60;3862:28:45;719:10:60;3879:2:45;3883:6;3862:9;:28::i;10110:370::-;10241:19;;;10233:68;;;;;;;4848:2:357;10233:68:45;;;4830:21:357;4887:2;4867:18;;;4860:30;4926:34;4906:18;;;4899:62;4997:6;4977:18;;;4970:34;5021:19;;10233:68:45;4646:400:357;10233:68:45;10319:21;;;10311:68;;;;;;;5253:2:357;10311:68:45;;;5235:21:357;5292:2;5272:18;;;5265:30;5331:34;5311:18;;;5304:62;5402:4;5382:18;;;5375:32;5424:19;;10311:68:45;5051:398:357;10311:68:45;10390:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;2041:25:357;;;10441:32:45;;2014:18:357;10441:32:45;;;;;;;;10110:370;;;:::o;10761:441::-;4091:18;;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;10977:17;10957:37;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;;;;5656:2:357;11010:68:45;;;5638:21:357;5695:2;5675:18;;;5668:30;5734:31;5714:18;;;5707:59;5783:18;;11010:68:45;5454:353:357;11010:68:45;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;7601:18;;;7593:68;;;;;;;6014:2:357;7593:68:45;;;5996:21:357;6053:2;6033:18;;;6026:30;6092:34;6072:18;;;6065:62;6163:7;6143:18;;;6136:35;6188:19;;7593:68:45;5812:401:357;7593:68:45;7679:16;;;7671:64;;;;;;;6420:2:357;7671:64:45;;;6402:21:357;6459:2;6439:18;;;6432:30;6498:34;6478:18;;;6471:62;6569:5;6549:18;;;6542:33;6592:19;;7671:64:45;6218:399:357;7671:64:45;7817:15;;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;;;;6824:2:357;7842:72:45;;;6806:21:357;6863:2;6843:18;;;6836:30;6902:34;6882:18;;;6875:62;6973:8;6953:18;;;6946:36;6999:19;;7842:72:45;6622:402:357;7842:72:45;7948:15;;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;8045:26;;8054:4;8045:26;;;8064:6;8045:26;;;;2041:25:357;;2029:2;2014:18;;1895:177;8045:26:45;;;;;;;;8082:37;9111:576;8402:389;8485:21;;;8477:65;;;;;;;7231:2:357;8477:65:45;;;7213:21:357;7270:2;7250:18;;;7243:30;7309:33;7289:18;;;7282:61;7360:18;;8477:65:45;7029:355:357;8477:65:45;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;8645:18:45;;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:45;;2041:25:357;;;8688:37:45;;;;8705:1;;8688:37;;2029:2:357;2014:18;8688:37:45;;;;;;;8402:389;;:::o;9111:576::-;9194:21;;;9186:67;;;;;;;7591:2:357;9186:67:45;;;7573:21:357;7630:2;7610:18;;;7603:30;7669:34;7649:18;;;7642:62;7740:3;7720:18;;;7713:31;7761:19;;9186:67:45;7389:397:357;9186:67:45;9349:18;;;9324:22;9349:18;;;;;;;;;;;9385:24;;;;9377:71;;;;;;;7993:2:357;9377:71:45;;;7975:21:357;8032:2;8012:18;;;8005:30;8071:34;8051:18;;;8044:62;8142:4;8122:18;;;8115:32;8164:19;;9377:71:45;7791:398:357;9377:71:45;9482:18;;;:9;:18;;;;;;;;;;9503:23;;;9482:44;;9546:12;:22;;9520:6;;9482:9;9546:22;;9520:6;;9546:22;:::i;:::-;;;;-1:-1:-1;;9584:37:45;;2041:25:357;;;9610:1:45;;9584:37;;;;;;2029:2:357;2014:18;9584:37:45;1895:177:357;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:357:o;774:656::-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1212:6;1209:1;1206:13;1203:91;;;1282:1;1277:2;1268:6;1257:9;1253:22;1249:31;1242:42;1203:91;-1:-1:-1;1346:2:357;1334:15;1351:66;1330:88;1315:104;;;;1421:2;1311:113;;774:656;-1:-1:-1;;;774:656:357:o;1435:196::-;1503:20;;1563:42;1552:54;;1542:65;;1532:93;;1621:1;1618;1611:12;1532:93;1435:196;;;:::o;1636:254::-;1704:6;1712;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;1804:29;1823:9;1804:29;:::i;:::-;1794:39;1880:2;1865:18;;;;1852:32;;-1:-1:-1;;;1636:254:357:o;2077:328::-;2154:6;2162;2170;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;2262:29;2281:9;2262:29;:::i;:::-;2252:39;;2310:38;2344:2;2333:9;2329:18;2310:38;:::i;:::-;2300:48;;2395:2;2384:9;2380:18;2367:32;2357:42;;2077:328;;;;;:::o;2599:186::-;2658:6;2711:2;2699:9;2690:7;2686:23;2682:32;2679:52;;;2727:1;2724;2717:12;2679:52;2750:29;2769:9;2750:29;:::i;2790:260::-;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:29;2977:9;2958:29;:::i;:::-;2948:39;;3006:38;3040:2;3029:9;3025:18;3006:38;:::i;:::-;2996:48;;2790:260;;;;;:::o;3055:437::-;3134:1;3130:12;;;;3177;;;3198:61;;3252:4;3244:6;3240:17;3230:27;;3198:61;3305:2;3297:6;3294:14;3274:18;3271:38;3268:218;;3342:77;3339:1;3332:88;3443:4;3440:1;3433:15;3471:4;3468:1;3461:15;3268:218;;3055:437;;;:::o;3497:184::-;3549:77;3546:1;3539:88;3646:4;3643:1;3636:15;3670:4;3667:1;3660:15;3686:128;3726:3;3757:1;3753:6;3750:1;3747:13;3744:39;;;3763:18;;:::i;:::-;-1:-1:-1;3799:9:357;;3686:128::o;8194:125::-;8234:4;8262:1;8259;8256:8;8253:34;;;8267:18;;:::i;:::-;-1:-1:-1;8304:9:357;;8194:125::o","linkReferences":{},"immutableReferences":{"109440":[{"start":425,"length":32},{"start":881,"length":32}],"109443":[{"start":843,"length":32},{"start":992,"length":32},{"start":1573,"length":32},{"start":1884,"length":32}],"109446":[{"start":580,"length":32}]}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_TOKEN()":"033964be","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","l1Token()":"c01e1bd6","l2Bridge()":"ae1f6aaf","mint(address,uint256)":"40c10f19","name()":"06fdde03","remoteToken()":"d6c0b2c4","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Burn(address,uint256)\":{\"params\":{\"account\":\"Address of the account tokens are being burned from.\",\"amount\":\"Amount of tokens burned.\"}},\"Mint(address,uint256)\":{\"params\":{\"account\":\"Address of the account tokens are being minted for.\",\"amount\":\"Amount of tokens minted.\"}}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"bridge()\":{\"custom:legacy\":\"@notice Legacy getter for BRIDGE.\"},\"burn(address,uint256)\":{\"params\":{\"_amount\":\"Amount of tokens to burn.\",\"_from\":\"Address to burn tokens from.\"}},\"constructor\":{\"params\":{\"_bridge\":\"Address of the L2 standard bridge.\",\"_name\":\"ERC20 name.\",\"_remoteToken\":\"Address of the corresponding L1 token.\",\"_symbol\":\"ERC20 symbol.\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"l1Token()\":{\"custom:legacy\":\"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward.\"},\"l2Bridge()\":{\"custom:legacy\":\"@notice Legacy getter for the bridge. Use BRIDGE going forward.\"},\"mint(address,uint256)\":{\"params\":{\"_amount\":\"Amount of tokens to mint.\",\"_to\":\"Address to mint tokens to.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"remoteToken()\":{\"custom:legacy\":\"@notice Legacy getter for REMOTE_TOKEN.\"},\"supportsInterface(bytes4)\":{\"params\":{\"_interfaceId\":\"Interface ID to check.\"},\"returns\":{\"_0\":\"Whether or not the interface is supported by this contract.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"OptimismMintableERC20\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,uint256)\":{\"notice\":\"Emitted whenever tokens are burned from an account.\"},\"Mint(address,uint256)\":{\"notice\":\"Emitted whenever tokens are minted for an account.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Address of the StandardBridge on this network.\"},\"REMOTE_TOKEN()\":{\"notice\":\"Address of the corresponding version of this token on the remote chain.\"},\"burn(address,uint256)\":{\"notice\":\"Allows the StandardBridge on this network to burn tokens.\"},\"mint(address,uint256)\":{\"notice\":\"Allows the StandardBridge on this network to mint tokens.\"},\"supportsInterface(bytes4)\":{\"notice\":\"ERC165 interface check function.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa. Designed to be backwards compatible with the older StandardL2ERC20 token which was only meant for use on L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/OptimismMintableERC20.sol\":\"OptimismMintableERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_bridge","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"bridge()":{"custom:legacy":"@notice Legacy getter for BRIDGE."},"burn(address,uint256)":{"params":{"_amount":"Amount of tokens to burn.","_from":"Address to burn tokens from."}},"constructor":{"params":{"_bridge":"Address of the L2 standard bridge.","_name":"ERC20 name.","_remoteToken":"Address of the corresponding L1 token.","_symbol":"ERC20 symbol."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"l1Token()":{"custom:legacy":"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward."},"l2Bridge()":{"custom:legacy":"@notice Legacy getter for the bridge. Use BRIDGE going forward."},"mint(address,uint256)":{"params":{"_amount":"Amount of tokens to mint.","_to":"Address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"remoteToken()":{"custom:legacy":"@notice Legacy getter for REMOTE_TOKEN."},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"burn(address,uint256)":{"notice":"Allows the StandardBridge on this network to burn tokens."},"mint(address,uint256)":{"notice":"Allows the StandardBridge on this network to mint tokens."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/OptimismMintableERC20.sol":"OptimismMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49734,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":49740,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":49742,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":49744,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":49746,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"burn(address,uint256)":{"notice":"Allows the StandardBridge on this network to burn tokens."},"mint(address,uint256)":{"notice":"Allows the StandardBridge on this network to mint tokens."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"version()":{"notice":"Semantic version."}},"events":{"Burn(address,uint256)":{"notice":"Emitted whenever tokens are burned from an account."},"Mint(address,uint256)":{"notice":"Emitted whenever tokens are minted for an account."}},"notice":"OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa. Designed to be backwards compatible with the older StandardL2ERC20 token which was only meant for use on L2."},"devdoc":{"version":1,"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"bridge()":{},"burn(address,uint256)":{"params":{"_amount":"Amount of tokens to burn.","_from":"Address to burn tokens from."}},"constructor":{"params":{"_bridge":"Address of the L2 standard bridge.","_name":"ERC20 name.","_remoteToken":"Address of the corresponding L1 token.","_symbol":"ERC20 symbol."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"l1Token()":{},"l2Bridge()":{},"mint(address,uint256)":{"params":{"_amount":"Amount of tokens to mint.","_to":"Address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"remoteToken()":{},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"events":{"Burn(address,uint256)":{"params":{"account":"Address of the account tokens are being burned from.","amount":"Amount of tokens burned."}},"Mint(address,uint256)":{"params":{"account":"Address of the account tokens are being minted for.","amount":"Amount of tokens minted."}}},"title":"OptimismMintableERC20"},"ast":{"absolutePath":"src/universal/OptimismMintableERC20.sol","id":109646,"exportedSymbols":{"ERC20":[50304],"IERC165":[54446],"ILegacyMintableERC20":[109333],"IOptimismMintableERC20":[109310],"ISemver":[109417],"OptimismMintableERC20":[109645]},"nodeType":"SourceUnit","src":"32:5312:229","nodes":[{"id":109419,"nodeType":"PragmaDirective","src":"32:23:229","nodes":[],"literals":["solidity","0.8",".15"]},{"id":109421,"nodeType":"ImportDirective","src":"57:70:229","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":50305,"symbolAliases":[{"foreign":{"id":109420,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50304,"src":"66:5:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109423,"nodeType":"ImportDirective","src":"128:82:229","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":54447,"symbolAliases":[{"foreign":{"id":109422,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54446,"src":"137:7:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109426,"nodeType":"ImportDirective","src":"211:104:229","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC20.sol","file":"src/universal/IOptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":109334,"symbolAliases":[{"foreign":{"id":109424,"name":"ILegacyMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109333,"src":"220:20:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":109425,"name":"IOptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109310,"src":"242:22:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109428,"nodeType":"ImportDirective","src":"316:52:229","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":109427,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"325:7:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109645,"nodeType":"ContractDefinition","src":"833:4510:229","nodes":[{"id":109440,"nodeType":"VariableDeclaration","src":"1022:37:229","nodes":[],"constant":false,"documentation":{"id":109438,"nodeType":"StructuredDocumentation","src":"934:83:229","text":"@notice Address of the corresponding version of this token on the remote chain."},"functionSelector":"033964be","mutability":"immutable","name":"REMOTE_TOKEN","nameLocation":"1047:12:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109439,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109443,"nodeType":"VariableDeclaration","src":"1129:31:229","nodes":[],"constant":false,"documentation":{"id":109441,"nodeType":"StructuredDocumentation","src":"1066:58:229","text":"@notice Address of the StandardBridge on this network."},"functionSelector":"ee9a31a2","mutability":"immutable","name":"BRIDGE","nameLocation":"1154:6:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109442,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109446,"nodeType":"VariableDeclaration","src":"1205:32:229","nodes":[],"constant":false,"documentation":{"id":109444,"nodeType":"StructuredDocumentation","src":"1167:33:229","text":"@notice Decimals of the token"},"mutability":"immutable","name":"DECIMALS","nameLocation":"1229:8:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109445,"name":"uint8","nodeType":"ElementaryTypeName","src":"1205:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":109453,"nodeType":"EventDefinition","src":"1434:52:229","nodes":[],"anonymous":false,"documentation":{"id":109447,"nodeType":"StructuredDocumentation","src":"1244:185:229","text":"@notice Emitted whenever tokens are minted for an account.\n @param account Address of the account tokens are being minted for.\n @param amount Amount of tokens minted."},"eventSelector":"0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","name":"Mint","nameLocation":"1440:4:229","parameters":{"id":109452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109449,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1461:7:229","nodeType":"VariableDeclaration","scope":109453,"src":"1445:23:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109448,"name":"address","nodeType":"ElementaryTypeName","src":"1445:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109451,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1478:6:229","nodeType":"VariableDeclaration","scope":109453,"src":"1470:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109450,"name":"uint256","nodeType":"ElementaryTypeName","src":"1470:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1444:41:229"}},{"id":109460,"nodeType":"EventDefinition","src":"1684:52:229","nodes":[],"anonymous":false,"documentation":{"id":109454,"nodeType":"StructuredDocumentation","src":"1492:187:229","text":"@notice Emitted whenever tokens are burned from an account.\n @param account Address of the account tokens are being burned from.\n @param amount Amount of tokens burned."},"eventSelector":"cc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5","name":"Burn","nameLocation":"1690:4:229","parameters":{"id":109459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109456,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1711:7:229","nodeType":"VariableDeclaration","scope":109460,"src":"1695:23:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109455,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109458,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1728:6:229","nodeType":"VariableDeclaration","scope":109460,"src":"1720:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:41:229"}},{"id":109473,"nodeType":"ModifierDefinition","src":"1805:135:229","nodes":[],"body":{"id":109472,"nodeType":"Block","src":"1827:113:229","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":109464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1845:3:229","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1845:10:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109466,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"1859:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1845:20:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696467652063616e206d696e7420616e64206275726e","id":109468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1867:54:229","typeDescriptions":{"typeIdentifier":"t_stringliteral_684e9b7e2c7fdcb543a3efbe7d9ca90113ea3f2c0463752c3d3de870c67a963a","typeString":"literal_string \"OptimismMintableERC20: only bridge can mint and burn\""},"value":"OptimismMintableERC20: only bridge can mint and burn"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684e9b7e2c7fdcb543a3efbe7d9ca90113ea3f2c0463752c3d3de870c67a963a","typeString":"literal_string \"OptimismMintableERC20: only bridge can mint and burn\""}],"id":109463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1837:7:229","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":109469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:85:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109470,"nodeType":"ExpressionStatement","src":"1837:85:229"},{"id":109471,"nodeType":"PlaceholderStatement","src":"1932:1:229"}]},"documentation":{"id":109461,"nodeType":"StructuredDocumentation","src":"1742:58:229","text":"@notice A modifier that only allows the bridge to call"},"name":"onlyBridge","nameLocation":"1814:10:229","parameters":{"id":109462,"nodeType":"ParameterList","parameters":[],"src":"1824:2:229"},"virtual":false,"visibility":"internal"},{"id":109477,"nodeType":"VariableDeclaration","src":"2009:40:229","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":109474,"nodeType":"StructuredDocumentation","src":"1946:58:229","text":"@notice Semantic version.\n @custom:semver 1.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2032:7:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109475,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":109476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2042:7:229","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":109508,"nodeType":"FunctionDefinition","src":"2268:292:229","nodes":[],"body":{"id":109507,"nodeType":"Block","src":"2460:100:229","nodes":[],"statements":[{"expression":{"id":109497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109495,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"2470:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109496,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109482,"src":"2485:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2470:27:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109498,"nodeType":"ExpressionStatement","src":"2470:27:229"},{"expression":{"id":109501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109499,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"2507:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109500,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109480,"src":"2516:7:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2507:16:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109502,"nodeType":"ExpressionStatement","src":"2507:16:229"},{"expression":{"id":109505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109503,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109446,"src":"2533:8:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109504,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109488,"src":"2544:9:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2533:20:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":109506,"nodeType":"ExpressionStatement","src":"2533:20:229"}]},"documentation":{"id":109478,"nodeType":"StructuredDocumentation","src":"2056:207:229","text":"@param _bridge Address of the L2 standard bridge.\n @param _remoteToken Address of the corresponding L1 token.\n @param _name ERC20 name.\n @param _symbol ERC20 symbol."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":109491,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109484,"src":"2440:5:229","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109492,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109486,"src":"2447:7:229","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":109493,"kind":"baseConstructorSpecifier","modifierName":{"id":109490,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50304,"src":"2434:5:229"},"nodeType":"ModifierInvocation","src":"2434:21:229"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":109489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109480,"mutability":"mutable","name":"_bridge","nameLocation":"2297:7:229","nodeType":"VariableDeclaration","scope":109508,"src":"2289:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109479,"name":"address","nodeType":"ElementaryTypeName","src":"2289:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109482,"mutability":"mutable","name":"_remoteToken","nameLocation":"2322:12:229","nodeType":"VariableDeclaration","scope":109508,"src":"2314:20:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109481,"name":"address","nodeType":"ElementaryTypeName","src":"2314:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109484,"mutability":"mutable","name":"_name","nameLocation":"2358:5:229","nodeType":"VariableDeclaration","scope":109508,"src":"2344:19:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109483,"name":"string","nodeType":"ElementaryTypeName","src":"2344:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109486,"mutability":"mutable","name":"_symbol","nameLocation":"2387:7:229","nodeType":"VariableDeclaration","scope":109508,"src":"2373:21:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109485,"name":"string","nodeType":"ElementaryTypeName","src":"2373:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109488,"mutability":"mutable","name":"_decimals","nameLocation":"2410:9:229","nodeType":"VariableDeclaration","scope":109508,"src":"2404:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109487,"name":"uint8","nodeType":"ElementaryTypeName","src":"2404:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2279:146:229"},"returnParameters":{"id":109494,"nodeType":"ParameterList","parameters":[],"src":"2460:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109532,"nodeType":"FunctionDefinition","src":"2739:254:229","nodes":[],"body":{"id":109531,"nodeType":"Block","src":"2924:69:229","nodes":[],"statements":[{"expression":{"arguments":[{"id":109522,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109511,"src":"2940:3:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109523,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109513,"src":"2945:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109521,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50121,"src":"2934:5:229","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2934:19:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109525,"nodeType":"ExpressionStatement","src":"2934:19:229"},{"eventCall":{"arguments":[{"id":109527,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109511,"src":"2973:3:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109528,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109513,"src":"2978:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109526,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109453,"src":"2968:4:229","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2968:18:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109530,"nodeType":"EmitStatement","src":"2963:23:229"}]},"baseFunctions":[109302,109325],"documentation":{"id":109509,"nodeType":"StructuredDocumentation","src":"2566:168:229","text":"@notice Allows the StandardBridge on this network to mint tokens.\n @param _to Address to mint tokens to.\n @param _amount Amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":109519,"kind":"modifierInvocation","modifierName":{"id":109518,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":109473,"src":"2909:10:229"},"nodeType":"ModifierInvocation","src":"2909:10:229"}],"name":"mint","nameLocation":"2748:4:229","overrides":{"id":109517,"nodeType":"OverrideSpecifier","overrides":[{"id":109515,"name":"IOptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109310,"src":"2855:22:229"},{"id":109516,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"2879:20:229"}],"src":"2846:54:229"},"parameters":{"id":109514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109511,"mutability":"mutable","name":"_to","nameLocation":"2770:3:229","nodeType":"VariableDeclaration","scope":109532,"src":"2762:11:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109510,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109513,"mutability":"mutable","name":"_amount","nameLocation":"2791:7:229","nodeType":"VariableDeclaration","scope":109532,"src":"2783:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109512,"name":"uint256","nodeType":"ElementaryTypeName","src":"2783:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:52:229"},"returnParameters":{"id":109520,"nodeType":"ParameterList","parameters":[],"src":"2924:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":109556,"nodeType":"FunctionDefinition","src":"3174:260:229","nodes":[],"body":{"id":109555,"nodeType":"Block","src":"3361:73:229","nodes":[],"statements":[{"expression":{"arguments":[{"id":109546,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109535,"src":"3377:5:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109547,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109537,"src":"3384:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109545,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50193,"src":"3371:5:229","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3371:21:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109549,"nodeType":"ExpressionStatement","src":"3371:21:229"},{"eventCall":{"arguments":[{"id":109551,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109535,"src":"3412:5:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109552,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109537,"src":"3419:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109550,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109460,"src":"3407:4:229","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3407:20:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109554,"nodeType":"EmitStatement","src":"3402:25:229"}]},"baseFunctions":[109309,109332],"documentation":{"id":109533,"nodeType":"StructuredDocumentation","src":"2999:170:229","text":"@notice Allows the StandardBridge on this network to burn tokens.\n @param _from Address to burn tokens from.\n @param _amount Amount of tokens to burn."},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[{"id":109543,"kind":"modifierInvocation","modifierName":{"id":109542,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":109473,"src":"3346:10:229"},"nodeType":"ModifierInvocation","src":"3346:10:229"}],"name":"burn","nameLocation":"3183:4:229","overrides":{"id":109541,"nodeType":"OverrideSpecifier","overrides":[{"id":109539,"name":"IOptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109310,"src":"3292:22:229"},{"id":109540,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"3316:20:229"}],"src":"3283:54:229"},"parameters":{"id":109538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109535,"mutability":"mutable","name":"_from","nameLocation":"3205:5:229","nodeType":"VariableDeclaration","scope":109556,"src":"3197:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109534,"name":"address","nodeType":"ElementaryTypeName","src":"3197:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109537,"mutability":"mutable","name":"_amount","nameLocation":"3228:7:229","nodeType":"VariableDeclaration","scope":109556,"src":"3220:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109536,"name":"uint256","nodeType":"ElementaryTypeName","src":"3220:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3187:54:229"},"returnParameters":{"id":109544,"nodeType":"ParameterList","parameters":[],"src":"3361:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":109598,"nodeType":"FunctionDefinition","src":"3616:519:229","nodes":[],"body":{"id":109597,"nodeType":"Block","src":"3701:434:229","nodes":[],"statements":[{"assignments":[109565],"declarations":[{"constant":false,"id":109565,"mutability":"mutable","name":"iface1","nameLocation":"3718:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3711:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109564,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3711:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109570,"initialValue":{"expression":{"arguments":[{"id":109567,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54446,"src":"3732:7:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$54446_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$54446_$","typeString":"type(contract IERC165)"}],"id":109566,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3727:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3727:13:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$54446","typeString":"type(contract IERC165)"}},"id":109569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3727:25:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3711:41:229"},{"assignments":[109572],"declarations":[{"constant":false,"id":109572,"mutability":"mutable","name":"iface2","nameLocation":"3835:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3828:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109571,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3828:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109577,"initialValue":{"expression":{"arguments":[{"id":109574,"name":"ILegacyMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109333,"src":"3849:20:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILegacyMintableERC20_$109333_$","typeString":"type(contract ILegacyMintableERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ILegacyMintableERC20_$109333_$","typeString":"type(contract ILegacyMintableERC20)"}],"id":109573,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3844:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:26:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ILegacyMintableERC20_$109333","typeString":"type(contract ILegacyMintableERC20)"}},"id":109576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3844:38:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3828:54:229"},{"assignments":[109579],"declarations":[{"constant":false,"id":109579,"mutability":"mutable","name":"iface3","nameLocation":"3988:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3981:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109578,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3981:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109584,"initialValue":{"expression":{"arguments":[{"id":109581,"name":"IOptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109310,"src":"4002:22:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC20_$109310_$","typeString":"type(contract IOptimismMintableERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC20_$109310_$","typeString":"type(contract IOptimismMintableERC20)"}],"id":109580,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3997:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3997:28:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC20_$109310","typeString":"type(contract IOptimismMintableERC20)"}},"id":109583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3997:40:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3981:56:229"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":109595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":109591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109585,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4054:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109586,"name":"iface1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109565,"src":"4070:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4054:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109588,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4080:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109589,"name":"iface2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109572,"src":"4096:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4080:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4054:48:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109592,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4106:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109593,"name":"iface3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109579,"src":"4122:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4106:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4054:74:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":109563,"id":109596,"nodeType":"Return","src":"4047:81:229"}]},"baseFunctions":[54445],"documentation":{"id":109557,"nodeType":"StructuredDocumentation","src":"3440:171:229","text":"@notice ERC165 interface check function.\n @param _interfaceId Interface ID to check.\n @return Whether or not the interface is supported by this contract."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3625:17:229","parameters":{"id":109560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109559,"mutability":"mutable","name":"_interfaceId","nameLocation":"3650:12:229","nodeType":"VariableDeclaration","scope":109598,"src":"3643:19:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109558,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3643:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3642:21:229"},"returnParameters":{"id":109563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109598,"src":"3695:4:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":109561,"name":"bool","nodeType":"ElementaryTypeName","src":"3695:4:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3694:6:229"},"scope":109645,"stateMutability":"pure","virtual":true,"visibility":"external"},{"id":109607,"nodeType":"FunctionDefinition","src":"4248:85:229","nodes":[],"body":{"id":109606,"nodeType":"Block","src":"4297:36:229","nodes":[],"statements":[{"expression":{"id":109604,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"4314:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109603,"id":109605,"nodeType":"Return","src":"4307:19:229"}]},"baseFunctions":[109318],"documentation":{"id":109599,"nodeType":"StructuredDocumentation","src":"4141:102:229","text":"@custom:legacy\n @notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward."},"functionSelector":"c01e1bd6","implemented":true,"kind":"function","modifiers":[],"name":"l1Token","nameLocation":"4257:7:229","parameters":{"id":109600,"nodeType":"ParameterList","parameters":[],"src":"4264:2:229"},"returnParameters":{"id":109603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109607,"src":"4288:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109601,"name":"address","nodeType":"ElementaryTypeName","src":"4288:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4287:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109616,"nodeType":"FunctionDefinition","src":"4434:80:229","nodes":[],"body":{"id":109615,"nodeType":"Block","src":"4484:30:229","nodes":[],"statements":[{"expression":{"id":109613,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"4501:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109612,"id":109614,"nodeType":"Return","src":"4494:13:229"}]},"documentation":{"id":109608,"nodeType":"StructuredDocumentation","src":"4339:90:229","text":"@custom:legacy\n @notice Legacy getter for the bridge. Use BRIDGE going forward."},"functionSelector":"ae1f6aaf","implemented":true,"kind":"function","modifiers":[],"name":"l2Bridge","nameLocation":"4443:8:229","parameters":{"id":109609,"nodeType":"ParameterList","parameters":[],"src":"4451:2:229"},"returnParameters":{"id":109612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109616,"src":"4475:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109610,"name":"address","nodeType":"ElementaryTypeName","src":"4475:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4474:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109625,"nodeType":"FunctionDefinition","src":"4591:89:229","nodes":[],"body":{"id":109624,"nodeType":"Block","src":"4644:36:229","nodes":[],"statements":[{"expression":{"id":109622,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"4661:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109621,"id":109623,"nodeType":"Return","src":"4654:19:229"}]},"baseFunctions":[109290],"documentation":{"id":109617,"nodeType":"StructuredDocumentation","src":"4520:66:229","text":"@custom:legacy\n @notice Legacy getter for REMOTE_TOKEN."},"functionSelector":"d6c0b2c4","implemented":true,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"4600:11:229","parameters":{"id":109618,"nodeType":"ParameterList","parameters":[],"src":"4611:2:229"},"returnParameters":{"id":109621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109625,"src":"4635:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109619,"name":"address","nodeType":"ElementaryTypeName","src":"4635:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4634:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109634,"nodeType":"FunctionDefinition","src":"4751:78:229","nodes":[],"body":{"id":109633,"nodeType":"Block","src":"4799:30:229","nodes":[],"statements":[{"expression":{"id":109631,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"4816:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109630,"id":109632,"nodeType":"Return","src":"4809:13:229"}]},"baseFunctions":[109295],"documentation":{"id":109626,"nodeType":"StructuredDocumentation","src":"4686:60:229","text":"@custom:legacy\n @notice Legacy getter for BRIDGE."},"functionSelector":"e78cea92","implemented":true,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"4760:6:229","parameters":{"id":109627,"nodeType":"ParameterList","parameters":[],"src":"4766:2:229"},"returnParameters":{"id":109630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109634,"src":"4790:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109628,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4789:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109644,"nodeType":"FunctionDefinition","src":"5252:89:229","nodes":[],"body":{"id":109643,"nodeType":"Block","src":"5309:32:229","nodes":[],"statements":[{"expression":{"id":109641,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109446,"src":"5326:8:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":109640,"id":109642,"nodeType":"Return","src":"5319:15:229"}]},"baseFunctions":[49793],"documentation":{"id":109635,"nodeType":"StructuredDocumentation","src":"4835:412:229","text":"@dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"5261:8:229","overrides":{"id":109637,"nodeType":"OverrideSpecifier","overrides":[],"src":"5284:8:229"},"parameters":{"id":109636,"nodeType":"ParameterList","parameters":[],"src":"5269:2:229"},"returnParameters":{"id":109640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109644,"src":"5302:5:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109638,"name":"uint8","nodeType":"ElementaryTypeName","src":"5302:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5301:7:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":109430,"name":"IOptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109310,"src":"867:22:229"},"id":109431,"nodeType":"InheritanceSpecifier","src":"867:22:229"},{"baseName":{"id":109432,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"891:20:229"},"id":109433,"nodeType":"InheritanceSpecifier","src":"891:20:229"},{"baseName":{"id":109434,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50304,"src":"913:5:229"},"id":109435,"nodeType":"InheritanceSpecifier","src":"913:5:229"},{"baseName":{"id":109436,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"920:7:229"},"id":109437,"nodeType":"InheritanceSpecifier","src":"920:7:229"}],"canonicalName":"OptimismMintableERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":109429,"nodeType":"StructuredDocumentation","src":"370:463:229","text":"@title OptimismMintableERC20\n @notice OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed\n to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to\n use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa.\n Designed to be backwards compatible with the older StandardL2ERC20 token which was only\n meant for use on L2."},"fullyImplemented":true,"linearizedBaseContracts":[109645,109417,50304,51088,50382,53291,109333,109310,54446],"name":"OptimismMintableERC20","nameLocation":"842:21:229","scope":109646,"usedErrors":[]}],"license":"MIT"},"id":229} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/OptimismMintableERC20Factory.json b/packages/sdk/src/forge-artifacts/OptimismMintableERC20Factory.json new file mode 100644 index 000000000000..c43204aaaace --- /dev/null +++ b/packages/sdk/src/forge-artifacts/OptimismMintableERC20Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"createOptimismMintableERC20","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createOptimismMintableERC20WithDecimals","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createStandardL2Token","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_bridge","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OptimismMintableERC20Created","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"deployer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StandardL2TokenCreated","inputs":[{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"localToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001b6000610020565b610169565b600054610100900460ff16158080156100405750600054600160ff909116105b8061006b57506100593061015a60201b61059d1760201c565b15801561006b575060005460ff166001145b6100d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100f5576000805461ff0019166101001790555b600180546001600160a01b0319166001600160a01b0384161790558015610156576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b6120e5806101786000396000f3fe60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063c4d66de81162000062578063c4d66de81462000135578063ce5ac90f146200014e578063e78cea921462000165578063ee9a31a2146200018657600080fd5b806354fd4d50146200008c578063896f93d114620000e15780638cf0629c146200011e575b600080fd5b620000c96040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b604051620000d8919062000635565b60405180910390f35b620000f8620000f23660046200075d565b620001a5565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b620000f86200012f366004620007da565b620001bc565b6200014c6200014636600462000871565b620003ba565b005b620000f86200015f3660046200075d565b6200058c565b600154620000f89073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000f8565b6000620001b48484846200058c565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff851662000267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b6000858585856040516020016200028294939291906200088f565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688888888604051620002d290620005b9565b620002e2959493929190620008e9565b8190604051809103906000f590508015801562000303573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff1615808015620003db5750600054600160ff909116105b80620003f75750303b158015620003f7575060005460ff166001145b62000485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200025e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015620004e457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200058857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001b48484846012620001bc565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61178a806200094f83390190565b6000815180845260005b81811015620005ef57602081850181015186830182015201620005d1565b8181111562000602576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200064a6020830184620005c7565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200067657600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112620006bc57600080fd5b813567ffffffffffffffff80821115620006da57620006da6200067b565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156200072357620007236200067b565b816040528381528660208588010111156200073d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156200077357600080fd5b6200077e8462000651565b9250602084013567ffffffffffffffff808211156200079c57600080fd5b620007aa87838801620006aa565b93506040860135915080821115620007c157600080fd5b50620007d086828701620006aa565b9150509250925092565b60008060008060808587031215620007f157600080fd5b620007fc8562000651565b9350602085013567ffffffffffffffff808211156200081a57600080fd5b6200082888838901620006aa565b945060408701359150808211156200083f57600080fd5b506200084e87828801620006aa565b925050606085013560ff811681146200086657600080fd5b939692955090935050565b6000602082840312156200088457600080fd5b6200064a8262000651565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000620008c06080830186620005c7565b8281036040840152620008d48186620005c7565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200092460a0830186620005c7565b8281036060840152620009388186620005c7565b91505060ff83166080830152969550505050505056fe60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b6000806000606084860312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000aa164736f6c634300080f000a","sourceMap":"770:5093:230:-:0;;;2694:66;;;;;;;;;-1:-1:-1;2718:35:230;2748:1;2718:10;:35::i;:::-;770:5093;;2876:89;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;2942:6:230::1;:16:::0;;-1:-1:-1;;;;;;2942:16:230::1;-1:-1:-1::0;;;;;2942:16:230;::::1;;::::0;;3457:99:43;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;2876:89:230;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;429:194:357:-;770:5093:230;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063c4d66de81162000062578063c4d66de81462000135578063ce5ac90f146200014e578063e78cea921462000165578063ee9a31a2146200018657600080fd5b806354fd4d50146200008c578063896f93d114620000e15780638cf0629c146200011e575b600080fd5b620000c96040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b604051620000d8919062000635565b60405180910390f35b620000f8620000f23660046200075d565b620001a5565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b620000f86200012f366004620007da565b620001bc565b6200014c6200014636600462000871565b620003ba565b005b620000f86200015f3660046200075d565b6200058c565b600154620000f89073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000f8565b6000620001b48484846200058c565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff851662000267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b6000858585856040516020016200028294939291906200088f565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688888888604051620002d290620005b9565b620002e2959493929190620008e9565b8190604051809103906000f590508015801562000303573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff1615808015620003db5750600054600160ff909116105b80620003f75750303b158015620003f7575060005460ff166001145b62000485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200025e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015620004e457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200058857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001b48484846012620001bc565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61178a806200094f83390190565b6000815180845260005b81811015620005ef57602081850181015186830182015201620005d1565b8181111562000602576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200064a6020830184620005c7565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200067657600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112620006bc57600080fd5b813567ffffffffffffffff80821115620006da57620006da6200067b565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156200072357620007236200067b565b816040528381528660208588010111156200073d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156200077357600080fd5b6200077e8462000651565b9250602084013567ffffffffffffffff808211156200079c57600080fd5b620007aa87838801620006aa565b93506040860135915080821115620007c157600080fd5b50620007d086828701620006aa565b9150509250925092565b60008060008060808587031215620007f157600080fd5b620007fc8562000651565b9350602085013567ffffffffffffffff808211156200081a57600080fd5b6200082888838901620006aa565b945060408701359150808211156200083f57600080fd5b506200084e87828801620006aa565b925050606085013560ff811681146200086657600080fd5b939692955090935050565b6000602082840312156200088457600080fd5b6200064a8262000651565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000620008c06080830186620005c7565b8281036040840152620008d48186620005c7565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200092460a0830186620005c7565b8281036060840152620009388186620005c7565b91505060ff83166080830152969550505050505056fe60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b6000806000606084860312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000aa164736f6c634300080f000a","sourceMap":"770:5093:230:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3740:255;;;;;;:::i;:::-;;:::i;:::-;;;2746:42:357;2734:55;;;2716:74;;2704:2;2689:18;3740:255:230;2570:226:357;4908:953:230;;;;;;:::i;:::-;;:::i;2876:89::-;;;;;;:::i;:::-;;:::i;:::-;;4280:275;;;;;;:::i;:::-;;:::i;1115:21::-;;;;;;;;;3237:80;3304:6;;;;3237:80;;3740:255;3901:7;3931:57;3959:12;3973:5;3980:7;3931:27;:57::i;:::-;3924:64;3740:255;-1:-1:-1;;;;3740:255:230:o;4908:953::-;5110:7;5141:26;;;5133:102;;;;;;;3974:2:357;5133:102:230;;;3956:21:357;4013:2;3993:18;;;3986:30;4052:34;4032:18;;;4025:62;4123:33;4103:18;;;4096:61;4174:19;;5133:102:230;;;;;;;;;5246:12;5282;5296:5;5303:7;5312:9;5271:51;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5261:62;;;;;;5246:77;;5333:18;5407:4;5414:6;;;;;;;;;;;5422:12;5436:5;5443:7;5452:9;5374:88;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5333:130;;5570:10;5533:48;;5556:12;5533:48;;;;;;;;;;;;5760:66;;5815:10;2716:74:357;;5760:66:230;;;;;;;;;;;2704:2:357;2689:18;5760:66:230;;;;;;;5844:10;4908:953;-1:-1:-1;;;;;;4908:953:230:o;2876:89::-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;5684:2:357;3146:190:43;;;5666:21:357;5723:2;5703:18;;;5696:30;5762:34;5742:18;;;5735:62;5833:16;5813:18;;;5806:44;5867:19;;3146:190:43;5482:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;2942:6:230::1;:16:::0;;;::::1;;::::0;::::1;;::::0;;3457:99:43;;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;6049:36:357;;3531:14:43;;6037:2:357;6022:18;3531:14:43;;;;;;;3457:99;3090:472;2876:89:230;:::o;4280:275::-;4445:7;4475:73;4515:12;4529:5;4536:7;4545:2;4475:39;:73::i;1175:320:59:-;1465:19;;;:23;;;1175:320::o;-1:-1:-1:-;;;;;;;;:::o;14:531:357:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;336:6;333:1;330:13;327:87;;;402:1;395:4;386:6;381:3;377:16;373:27;366:38;327:87;-1:-1:-1;459:2:357;447:15;464:66;443:88;434:98;;;;534:4;430:109;;14:531;-1:-1:-1;;14:531:357:o;550:220::-;699:2;688:9;681:21;662:4;719:45;760:2;749:9;745:18;737:6;719:45;:::i;:::-;711:53;550:220;-1:-1:-1;;;550:220:357:o;775:196::-;843:20;;903:42;892:54;;882:65;;872:93;;961:1;958;951:12;872:93;775:196;;;:::o;976:184::-;1028:77;1025:1;1018:88;1125:4;1122:1;1115:15;1149:4;1146:1;1139:15;1165:778;1208:5;1261:3;1254:4;1246:6;1242:17;1238:27;1228:55;;1279:1;1276;1269:12;1228:55;1315:6;1302:20;1341:18;1378:2;1374;1371:10;1368:36;;;1384:18;;:::i;:::-;1518:2;1512:9;1580:4;1572:13;;1423:66;1568:22;;;1592:2;1564:31;1560:40;1548:53;;;1616:18;;;1636:22;;;1613:46;1610:72;;;1662:18;;:::i;:::-;1702:10;1698:2;1691:22;1737:2;1729:6;1722:18;1783:3;1776:4;1771:2;1763:6;1759:15;1755:26;1752:35;1749:55;;;1800:1;1797;1790:12;1749:55;1864:2;1857:4;1849:6;1845:17;1838:4;1830:6;1826:17;1813:54;1911:1;1904:4;1899:2;1891:6;1887:15;1883:26;1876:37;1931:6;1922:15;;;;;;1165:778;;;;:::o;1948:617::-;2045:6;2053;2061;2114:2;2102:9;2093:7;2089:23;2085:32;2082:52;;;2130:1;2127;2120:12;2082:52;2153:29;2172:9;2153:29;:::i;:::-;2143:39;;2233:2;2222:9;2218:18;2205:32;2256:18;2297:2;2289:6;2286:14;2283:34;;;2313:1;2310;2303:12;2283:34;2336:50;2378:7;2369:6;2358:9;2354:22;2336:50;:::i;:::-;2326:60;;2439:2;2428:9;2424:18;2411:32;2395:48;;2468:2;2458:8;2455:16;2452:36;;;2484:1;2481;2474:12;2452:36;;2507:52;2551:7;2540:8;2529:9;2525:24;2507:52;:::i;:::-;2497:62;;;1948:617;;;;;:::o;2801:775::-;2905:6;2913;2921;2929;2982:3;2970:9;2961:7;2957:23;2953:33;2950:53;;;2999:1;2996;2989:12;2950:53;3022:29;3041:9;3022:29;:::i;:::-;3012:39;;3102:2;3091:9;3087:18;3074:32;3125:18;3166:2;3158:6;3155:14;3152:34;;;3182:1;3179;3172:12;3152:34;3205:50;3247:7;3238:6;3227:9;3223:22;3205:50;:::i;:::-;3195:60;;3308:2;3297:9;3293:18;3280:32;3264:48;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;;3376:52;3420:7;3409:8;3398:9;3394:24;3376:52;:::i;:::-;3366:62;;;3478:2;3467:9;3463:18;3450:32;3522:4;3515:5;3511:16;3504:5;3501:27;3491:55;;3542:1;3539;3532:12;3491:55;2801:775;;;;-1:-1:-1;2801:775:357;;-1:-1:-1;;2801:775:357:o;3581:186::-;3640:6;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3732:29;3751:9;3732:29;:::i;4204:583::-;4465:42;4457:6;4453:55;4442:9;4435:74;4545:3;4540:2;4529:9;4525:18;4518:31;4416:4;4572:46;4613:3;4602:9;4598:19;4590:6;4572:46;:::i;:::-;4666:9;4658:6;4654:22;4649:2;4638:9;4634:18;4627:50;4694:33;4720:6;4712;4694:33;:::i;:::-;4686:41;;;4775:4;4767:6;4763:17;4758:2;4747:9;4743:18;4736:45;4204:583;;;;;;;:::o;4792:685::-;5032:4;5061:42;5142:2;5134:6;5130:15;5119:9;5112:34;5194:2;5186:6;5182:15;5177:2;5166:9;5162:18;5155:43;;5234:3;5229:2;5218:9;5214:18;5207:31;5261:46;5302:3;5291:9;5287:19;5279:6;5261:46;:::i;:::-;5355:9;5347:6;5343:22;5338:2;5327:9;5323:18;5316:50;5383:33;5409:6;5401;5383:33;:::i;:::-;5375:41;;;5465:4;5457:6;5453:17;5447:3;5436:9;5432:19;5425:46;4792:685;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","bridge()":"e78cea92","createOptimismMintableERC20(address,string,string)":"ce5ac90f","createOptimismMintableERC20WithDecimals(address,string,string,uint8)":"8cf0629c","createStandardL2Token(address,string,string)":"896f93d1","initialize(address)":"c4d66de8","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"OptimismMintableERC20Created\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"}],\"name\":\"StandardL2TokenCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"createOptimismMintableERC20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"name\":\"createOptimismMintableERC20WithDecimals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"createStandardL2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeployed 0x4200000000000000000000000000000000000012\",\"events\":{\"OptimismMintableERC20Created(address,address,address)\":{\"params\":{\"deployer\":\"Address of the account that deployed the token.\",\"localToken\":\"Address of the created token on the local chain.\",\"remoteToken\":\"Address of the corresponding token on the remote chain.\"}},\"StandardL2TokenCreated(address,address)\":{\"custom:legacy\":\"@notice Emitted whenever a new OptimismMintableERC20 is created. Legacy version of the newer OptimismMintableERC20Created event. We recommend relying on that event instead.\",\"params\":{\"localToken\":\"Address of the created token on the local chain.\",\"remoteToken\":\"Address of the token on the remote chain.\"}}},\"kind\":\"dev\",\"methods\":{\"BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Address of the StandardBridge on this chain.\"}},\"createOptimismMintableERC20(address,string,string)\":{\"params\":{\"_name\":\"ERC20 name.\",\"_remoteToken\":\"Address of the token on the remote chain.\",\"_symbol\":\"ERC20 symbol.\"},\"returns\":{\"_0\":\"Address of the newly created token.\"}},\"createOptimismMintableERC20WithDecimals(address,string,string,uint8)\":{\"params\":{\"_decimals\":\"ERC20 decimals\",\"_name\":\"ERC20 name.\",\"_remoteToken\":\"Address of the token on the remote chain.\",\"_symbol\":\"ERC20 symbol.\"},\"returns\":{\"_0\":\"Address of the newly created token.\"}},\"createStandardL2Token(address,string,string)\":{\"custom:legacy\":\"@notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the newer createOptimismMintableERC20 function, which has a more intuitive name.\",\"params\":{\"_name\":\"ERC20 name.\",\"_remoteToken\":\"Address of the token on the remote chain.\",\"_symbol\":\"ERC20 symbol.\"},\"returns\":{\"_0\":\"Address of the newly created token.\"}},\"initialize(address)\":{\"params\":{\"_bridge\":\"Address of the StandardBridge on this chain.\"}}},\"stateVariables\":{\"bridge\":{\"custom:network-specific\":\"\"},\"spacer_0_2_30\":{\"custom:spacer\":\"OptimismMintableERC20Factory's initializer slot spacing\"},\"version\":{\"custom:semver\":\"1.9.0\"}},\"title\":\"OptimismMintableERC20Factory\",\"version\":1},\"userdoc\":{\"events\":{\"OptimismMintableERC20Created(address,address,address)\":{\"notice\":\"Emitted whenever a new OptimismMintableERC20 is created.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead.\"},\"bridge()\":{\"notice\":\"Address of the StandardBridge on this chain.\"},\"constructor\":{\"notice\":\"Constructs the OptimismMintableERC20Factory contract.\"},\"createOptimismMintableERC20(address,string,string)\":{\"notice\":\"Creates an instance of the OptimismMintableERC20 contract.\"},\"createOptimismMintableERC20WithDecimals(address,string,string,uint8)\":{\"notice\":\"Creates an instance of the OptimismMintableERC20 contract, with specified decimals.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract.\"},\"version()\":{\"notice\":\"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version.\"}},\"notice\":\"OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20 contracts on the network it's deployed to. Simplifies the deployment process for users who may be less familiar with deploying smart contracts. Designed to be backwards compatible with the older StandardL2ERC20Factory contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/OptimismMintableERC20Factory.sol\":\"OptimismMintableERC20Factory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/OptimismMintableERC20Factory.sol\":{\"keccak256\":\"0xb508dc7b6f7fbf6e7156a11ae7a1e6ceed86f627c82b94d4f37dd98691b5e00f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e27f27581f94a983c92809aeda85232e37e1de4552777fbf734c9a0fd84a5a9\",\"dweb:/ipfs/QmVNzxCwipUN2UgcrYf8n7Ei7y6uE76cCYcorAwRg96Kp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"deployer","type":"address","indexed":false}],"type":"event","name":"OptimismMintableERC20Created","anonymous":false},{"inputs":[{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"localToken","type":"address","indexed":true}],"type":"event","name":"StandardL2TokenCreated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createOptimismMintableERC20","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createOptimismMintableERC20WithDecimals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createStandardL2Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_bridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"BRIDGE()":{"custom:legacy":"","returns":{"_0":"Address of the StandardBridge on this chain."}},"createOptimismMintableERC20(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"params":{"_decimals":"ERC20 decimals","_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createStandardL2Token(address,string,string)":{"custom:legacy":"@notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the newer createOptimismMintableERC20 function, which has a more intuitive name.","params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"initialize(address)":{"params":{"_bridge":"Address of the StandardBridge on this chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead."},"bridge()":{"notice":"Address of the StandardBridge on this chain."},"constructor":{"notice":"Constructs the OptimismMintableERC20Factory contract."},"createOptimismMintableERC20(address,string,string)":{"notice":"Creates an instance of the OptimismMintableERC20 contract."},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"notice":"Creates an instance of the OptimismMintableERC20 contract, with specified decimals."},"initialize(address)":{"notice":"Initializes the contract."},"version()":{"notice":"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/OptimismMintableERC20Factory.sol":"OptimismMintableERC20Factory"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/OptimismMintableERC20Factory.sol":{"keccak256":"0xb508dc7b6f7fbf6e7156a11ae7a1e6ceed86f627c82b94d4f37dd98691b5e00f","urls":["bzz-raw://5e27f27581f94a983c92809aeda85232e37e1de4552777fbf734c9a0fd84a5a9","dweb:/ipfs/QmVNzxCwipUN2UgcrYf8n7Ei7y6uE76cCYcorAwRg96Kp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":109661,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":109664,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"bridge","offset":0,"slot":"1","type":"t_address"},{"astId":109669,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead."},"bridge()":{"notice":"Address of the StandardBridge on this chain."},"constructor":{"notice":"Constructs the OptimismMintableERC20Factory contract."},"createOptimismMintableERC20(address,string,string)":{"notice":"Creates an instance of the OptimismMintableERC20 contract."},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"notice":"Creates an instance of the OptimismMintableERC20 contract, with specified decimals."},"initialize(address)":{"notice":"Initializes the contract."},"version()":{"notice":"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version."}},"events":{"OptimismMintableERC20Created(address,address,address)":{"notice":"Emitted whenever a new OptimismMintableERC20 is created."}},"notice":"OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20 contracts on the network it's deployed to. Simplifies the deployment process for users who may be less familiar with deploying smart contracts. Designed to be backwards compatible with the older StandardL2ERC20Factory contract."},"devdoc":{"version":1,"kind":"dev","methods":{"BRIDGE()":{"returns":{"_0":"Address of the StandardBridge on this chain."}},"createOptimismMintableERC20(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"params":{"_decimals":"ERC20 decimals","_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createStandardL2Token(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"initialize(address)":{"params":{"_bridge":"Address of the StandardBridge on this chain."}}},"events":{"OptimismMintableERC20Created(address,address,address)":{"params":{"deployer":"Address of the account that deployed the token.","localToken":"Address of the created token on the local chain.","remoteToken":"Address of the corresponding token on the remote chain."}},"StandardL2TokenCreated(address,address)":{"params":{"localToken":"Address of the created token on the local chain.","remoteToken":"Address of the token on the remote chain."}}},"title":"OptimismMintableERC20Factory"},"ast":{"absolutePath":"src/universal/OptimismMintableERC20Factory.sol","id":109832,"exportedSymbols":{"ISemver":[109417],"Initializable":[49678],"OptimismMintableERC20":[109645],"OptimismMintableERC20Factory":[109831]},"nodeType":"SourceUnit","src":"32:5832:230","nodes":[{"id":109647,"nodeType":"PragmaDirective","src":"32:23:230","nodes":[],"literals":["solidity","0.8",".15"]},{"id":109649,"nodeType":"ImportDirective","src":"57:80:230","nodes":[],"absolutePath":"src/universal/OptimismMintableERC20.sol","file":"src/universal/OptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":109646,"symbolAliases":[{"foreign":{"id":109648,"name":"OptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109645,"src":"66:21:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109651,"nodeType":"ImportDirective","src":"138:52:230","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":109650,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"147:7:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109653,"nodeType":"ImportDirective","src":"191:86:230","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":49679,"symbolAliases":[{"foreign":{"id":109652,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"200:13:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109831,"nodeType":"ContractDefinition","src":"770:5093:230","nodes":[{"id":109661,"nodeType":"VariableDeclaration","src":"985:29:230","nodes":[],"constant":false,"documentation":{"id":109659,"nodeType":"StructuredDocumentation","src":"840:140:230","text":"@custom:spacer OptimismMintableERC20Factory's initializer slot spacing\n @notice Spacer to avoid packing into the initializer slot"},"mutability":"mutable","name":"spacer_0_2_30","nameLocation":"1001:13:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":109660,"name":"bytes30","nodeType":"ElementaryTypeName","src":"985:7:230","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"private"},{"id":109664,"nodeType":"VariableDeclaration","src":"1115:21:230","nodes":[],"constant":false,"documentation":{"id":109662,"nodeType":"StructuredDocumentation","src":"1021:89:230","text":"@notice Address of the StandardBridge on this chain.\n @custom:network-specific"},"functionSelector":"e78cea92","mutability":"mutable","name":"bridge","nameLocation":"1130:6:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109663,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109669,"nodeType":"VariableDeclaration","src":"1370:25:230","nodes":[],"constant":false,"documentation":{"id":109665,"nodeType":"StructuredDocumentation","src":"1143:222:230","text":"@notice Reserve extra slots in the storage layout for future upgrades.\n A gap size of 49 was chosen here, so that the first slot used in a child contract\n would be 1 plus a multiple of 50."},"mutability":"mutable","name":"__gap","nameLocation":"1390:5:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":109666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:230","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":109668,"length":{"hexValue":"3439","id":109667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1378:2:230","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1370:11:230","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":109676,"nodeType":"EventDefinition","src":"1767:86:230","nodes":[],"anonymous":false,"documentation":{"id":109670,"nodeType":"StructuredDocumentation","src":"1402:360:230","text":"@custom:legacy\n @notice Emitted whenever a new OptimismMintableERC20 is created. Legacy version of the newer\n OptimismMintableERC20Created event. We recommend relying on that event instead.\n @param remoteToken Address of the token on the remote chain.\n @param localToken Address of the created token on the local chain."},"eventSelector":"ceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf","name":"StandardL2TokenCreated","nameLocation":"1773:22:230","parameters":{"id":109675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109672,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"1812:11:230","nodeType":"VariableDeclaration","scope":109676,"src":"1796:27:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109671,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109674,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"1841:10:230","nodeType":"VariableDeclaration","scope":109676,"src":"1825:26:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109673,"name":"address","nodeType":"ElementaryTypeName","src":"1825:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1795:57:230"}},{"id":109685,"nodeType":"EventDefinition","src":"2166:110:230","nodes":[],"anonymous":false,"documentation":{"id":109677,"nodeType":"StructuredDocumentation","src":"1859:302:230","text":"@notice Emitted whenever a new OptimismMintableERC20 is created.\n @param localToken Address of the created token on the local chain.\n @param remoteToken Address of the corresponding token on the remote chain.\n @param deployer Address of the account that deployed the token."},"eventSelector":"52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb","name":"OptimismMintableERC20Created","nameLocation":"2172:28:230","parameters":{"id":109684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109679,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"2217:10:230","nodeType":"VariableDeclaration","scope":109685,"src":"2201:26:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109678,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109681,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"2245:11:230","nodeType":"VariableDeclaration","scope":109685,"src":"2229:27:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109680,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109683,"indexed":false,"mutability":"mutable","name":"deployer","nameLocation":"2266:8:230","nodeType":"VariableDeclaration","scope":109685,"src":"2258:16:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109682,"name":"address","nodeType":"ElementaryTypeName","src":"2258:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:75:230"}},{"id":109689,"nodeType":"VariableDeclaration","src":"2577:40:230","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":109686,"nodeType":"StructuredDocumentation","src":"2282:290:230","text":"@notice The semver MUST be bumped any time that there is a change in\n the OptimismMintableERC20 token contract since this contract\n is responsible for deploying OptimismMintableERC20 contracts.\n @notice Semantic version.\n @custom:semver 1.9.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2600:7:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109687,"name":"string","nodeType":"ElementaryTypeName","src":"2577:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e392e30","id":109688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2610:7:230","typeDescriptions":{"typeIdentifier":"t_stringliteral_48b337767c221abef259fe87e655d8fa1026fb5e60ec68ad68fa7e00bb7f050c","typeString":"literal_string \"1.9.0\""},"value":"1.9.0"},"visibility":"public"},{"id":109701,"nodeType":"FunctionDefinition","src":"2694:66:230","nodes":[],"body":{"id":109700,"nodeType":"Block","src":"2708:52:230","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":109696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2748:1:230","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":109695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109694,"name":"address","nodeType":"ElementaryTypeName","src":"2740:7:230","typeDescriptions":{}}},"id":109697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2740:10:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":109693,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109714,"src":"2718:10:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":109698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_bridge"],"nodeType":"FunctionCall","src":"2718:35:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109699,"nodeType":"ExpressionStatement","src":"2718:35:230"}]},"documentation":{"id":109690,"nodeType":"StructuredDocumentation","src":"2624:65:230","text":"@notice Constructs the OptimismMintableERC20Factory contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":109691,"nodeType":"ParameterList","parameters":[],"src":"2705:2:230"},"returnParameters":{"id":109692,"nodeType":"ParameterList","parameters":[],"src":"2708:0:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109714,"nodeType":"FunctionDefinition","src":"2876:89:230","nodes":[],"body":{"id":109713,"nodeType":"Block","src":"2932:33:230","nodes":[],"statements":[{"expression":{"id":109711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109709,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"2942:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109710,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109704,"src":"2951:7:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2942:16:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109712,"nodeType":"ExpressionStatement","src":"2942:16:230"}]},"documentation":{"id":109702,"nodeType":"StructuredDocumentation","src":"2766:105:230","text":"@notice Initializes the contract.\n @param _bridge Address of the StandardBridge on this chain."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":109707,"kind":"modifierInvocation","modifierName":{"id":109706,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"2920:11:230"},"nodeType":"ModifierInvocation","src":"2920:11:230"}],"name":"initialize","nameLocation":"2885:10:230","parameters":{"id":109705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109704,"mutability":"mutable","name":"_bridge","nameLocation":"2904:7:230","nodeType":"VariableDeclaration","scope":109714,"src":"2896:15:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109703,"name":"address","nodeType":"ElementaryTypeName","src":"2896:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2895:17:230"},"returnParameters":{"id":109708,"nodeType":"ParameterList","parameters":[],"src":"2932:0:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109723,"nodeType":"FunctionDefinition","src":"3237:80:230","nodes":[],"body":{"id":109722,"nodeType":"Block","src":"3287:30:230","nodes":[],"statements":[{"expression":{"id":109720,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"3304:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109719,"id":109721,"nodeType":"Return","src":"3297:13:230"}]},"documentation":{"id":109715,"nodeType":"StructuredDocumentation","src":"2971:261:230","text":"@notice Getter function for the address of the StandardBridge on this chain.\n Public getter is legacy and will be removed in the future. Use `bridge` instead.\n @return Address of the StandardBridge on this chain.\n @custom:legacy"},"functionSelector":"ee9a31a2","implemented":true,"kind":"function","modifiers":[],"name":"BRIDGE","nameLocation":"3246:6:230","parameters":{"id":109716,"nodeType":"ParameterList","parameters":[],"src":"3252:2:230"},"returnParameters":{"id":109719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109723,"src":"3278:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109717,"name":"address","nodeType":"ElementaryTypeName","src":"3278:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3277:9:230"},"scope":109831,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":109742,"nodeType":"FunctionDefinition","src":"3740:255:230","nodes":[],"body":{"id":109741,"nodeType":"Block","src":"3914:81:230","nodes":[],"statements":[{"expression":{"arguments":[{"id":109736,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109726,"src":"3959:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109737,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109728,"src":"3973:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109738,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109730,"src":"3980:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":109735,"name":"createOptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109762,"src":"3931:27:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (address,string memory,string memory) returns (address)"}},"id":109739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3931:57:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109734,"id":109740,"nodeType":"Return","src":"3924:64:230"}]},"documentation":{"id":109724,"nodeType":"StructuredDocumentation","src":"3323:412:230","text":"@custom:legacy\n @notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the\n newer createOptimismMintableERC20 function, which has a more intuitive name.\n @param _remoteToken Address of the token on the remote chain.\n @param _name ERC20 name.\n @param _symbol ERC20 symbol.\n @return Address of the newly created token."},"functionSelector":"896f93d1","implemented":true,"kind":"function","modifiers":[],"name":"createStandardL2Token","nameLocation":"3749:21:230","parameters":{"id":109731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109726,"mutability":"mutable","name":"_remoteToken","nameLocation":"3788:12:230","nodeType":"VariableDeclaration","scope":109742,"src":"3780:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109725,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109728,"mutability":"mutable","name":"_name","nameLocation":"3824:5:230","nodeType":"VariableDeclaration","scope":109742,"src":"3810:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109727,"name":"string","nodeType":"ElementaryTypeName","src":"3810:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109730,"mutability":"mutable","name":"_symbol","nameLocation":"3853:7:230","nodeType":"VariableDeclaration","scope":109742,"src":"3839:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109729,"name":"string","nodeType":"ElementaryTypeName","src":"3839:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3770:96:230"},"returnParameters":{"id":109734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109742,"src":"3901:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109732,"name":"address","nodeType":"ElementaryTypeName","src":"3901:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3900:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":109762,"nodeType":"FunctionDefinition","src":"4280:275:230","nodes":[],"body":{"id":109761,"nodeType":"Block","src":"4458:97:230","nodes":[],"statements":[{"expression":{"arguments":[{"id":109755,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109745,"src":"4515:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109756,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109747,"src":"4529:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109757,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109749,"src":"4536:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3138","id":109758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4545:2:230","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":109754,"name":"createOptimismMintableERC20WithDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109830,"src":"4475:39:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_address_$","typeString":"function (address,string memory,string memory,uint8) returns (address)"}},"id":109759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4475:73:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109753,"id":109760,"nodeType":"Return","src":"4468:80:230"}]},"documentation":{"id":109743,"nodeType":"StructuredDocumentation","src":"4001:274:230","text":"@notice Creates an instance of the OptimismMintableERC20 contract.\n @param _remoteToken Address of the token on the remote chain.\n @param _name ERC20 name.\n @param _symbol ERC20 symbol.\n @return Address of the newly created token."},"functionSelector":"ce5ac90f","implemented":true,"kind":"function","modifiers":[],"name":"createOptimismMintableERC20","nameLocation":"4289:27:230","parameters":{"id":109750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109745,"mutability":"mutable","name":"_remoteToken","nameLocation":"4334:12:230","nodeType":"VariableDeclaration","scope":109762,"src":"4326:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109744,"name":"address","nodeType":"ElementaryTypeName","src":"4326:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109747,"mutability":"mutable","name":"_name","nameLocation":"4370:5:230","nodeType":"VariableDeclaration","scope":109762,"src":"4356:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109746,"name":"string","nodeType":"ElementaryTypeName","src":"4356:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109749,"mutability":"mutable","name":"_symbol","nameLocation":"4399:7:230","nodeType":"VariableDeclaration","scope":109762,"src":"4385:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109748,"name":"string","nodeType":"ElementaryTypeName","src":"4385:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4316:96:230"},"returnParameters":{"id":109753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109762,"src":"4445:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109751,"name":"address","nodeType":"ElementaryTypeName","src":"4445:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4444:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109830,"nodeType":"FunctionDefinition","src":"4908:953:230","nodes":[],"body":{"id":109829,"nodeType":"Block","src":"5123:738:230","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109777,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5141:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":109780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5165:1:230","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":109779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5157:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109778,"name":"address","nodeType":"ElementaryTypeName","src":"5157:7:230","typeDescriptions":{}}},"id":109781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5157:10:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5141:26:230","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7573742070726f766964652072656d6f746520746f6b656e2061646472657373","id":109783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5169:65:230","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fc9c38ce58e5889170de515a92b1e54913f12f8fd8aa9ab11446ca47e097779","typeString":"literal_string \"OptimismMintableERC20Factory: must provide remote token address\""},"value":"OptimismMintableERC20Factory: must provide remote token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1fc9c38ce58e5889170de515a92b1e54913f12f8fd8aa9ab11446ca47e097779","typeString":"literal_string \"OptimismMintableERC20Factory: must provide remote token address\""}],"id":109776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5133:7:230","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":109784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5133:102:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109785,"nodeType":"ExpressionStatement","src":"5133:102:230"},{"assignments":[109787],"declarations":[{"constant":false,"id":109787,"mutability":"mutable","name":"salt","nameLocation":"5254:4:230","nodeType":"VariableDeclaration","scope":109829,"src":"5246:12:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":109786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5246:7:230","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":109797,"initialValue":{"arguments":[{"arguments":[{"id":109791,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5282:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109792,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109767,"src":"5296:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109793,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109769,"src":"5303:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109794,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109771,"src":"5312:9:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":109789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5271:3:230","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":109790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5271:10:230","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":109795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5271:51:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":109788,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5261:9:230","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":109796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5261:62:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5246:77:230"},{"assignments":[109799],"declarations":[{"constant":false,"id":109799,"mutability":"mutable","name":"localToken","nameLocation":"5341:10:230","nodeType":"VariableDeclaration","scope":109829,"src":"5333:18:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109798,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":109814,"initialValue":{"arguments":[{"arguments":[{"id":109807,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"5414:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109808,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5422:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109809,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109767,"src":"5436:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109810,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109769,"src":"5443:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109811,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109771,"src":"5452:9:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":109804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5374:25:230","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_OptimismMintableERC20_$109645_$","typeString":"function (address,address,string memory,string memory,uint8) returns (contract OptimismMintableERC20)"},"typeName":{"id":109803,"nodeType":"UserDefinedTypeName","pathNode":{"id":109802,"name":"OptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109645,"src":"5378:21:230"},"referencedDeclaration":109645,"src":"5378:21:230","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}}},"id":109806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":109805,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109787,"src":"5407:4:230","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"5374:39:230","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_OptimismMintableERC20_$109645_$salt","typeString":"function (address,address,string memory,string memory,uint8) returns (contract OptimismMintableERC20)"}},"id":109812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5374:88:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}],"id":109801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5366:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109800,"name":"address","nodeType":"ElementaryTypeName","src":"5366:7:230","typeDescriptions":{}}},"id":109813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5366:97:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:130:230"},{"eventCall":{"arguments":[{"id":109816,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5556:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109817,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5570:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":109815,"name":"StandardL2TokenCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109676,"src":"5533:22:230","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":109818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5533:48:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109819,"nodeType":"EmitStatement","src":"5528:53:230"},{"eventCall":{"arguments":[{"id":109821,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5789:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109822,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5801:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":109823,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5815:3:230","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5815:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":109820,"name":"OptimismMintableERC20Created","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109685,"src":"5760:28:230","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":109825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5760:66:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109826,"nodeType":"EmitStatement","src":"5755:71:230"},{"expression":{"id":109827,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5844:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109775,"id":109828,"nodeType":"Return","src":"5837:17:230"}]},"documentation":{"id":109763,"nodeType":"StructuredDocumentation","src":"4561:342:230","text":"@notice Creates an instance of the OptimismMintableERC20 contract, with specified decimals.\n @param _remoteToken Address of the token on the remote chain.\n @param _name ERC20 name.\n @param _symbol ERC20 symbol.\n @param _decimals ERC20 decimals\n @return Address of the newly created token."},"functionSelector":"8cf0629c","implemented":true,"kind":"function","modifiers":[],"name":"createOptimismMintableERC20WithDecimals","nameLocation":"4917:39:230","parameters":{"id":109772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109765,"mutability":"mutable","name":"_remoteToken","nameLocation":"4974:12:230","nodeType":"VariableDeclaration","scope":109830,"src":"4966:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109764,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109767,"mutability":"mutable","name":"_name","nameLocation":"5010:5:230","nodeType":"VariableDeclaration","scope":109830,"src":"4996:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109766,"name":"string","nodeType":"ElementaryTypeName","src":"4996:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109769,"mutability":"mutable","name":"_symbol","nameLocation":"5039:7:230","nodeType":"VariableDeclaration","scope":109830,"src":"5025:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109768,"name":"string","nodeType":"ElementaryTypeName","src":"5025:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109771,"mutability":"mutable","name":"_decimals","nameLocation":"5062:9:230","nodeType":"VariableDeclaration","scope":109830,"src":"5056:15:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109770,"name":"uint8","nodeType":"ElementaryTypeName","src":"5056:5:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4956:121:230"},"returnParameters":{"id":109775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109830,"src":"5110:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109773,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":109655,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"811:7:230"},"id":109656,"nodeType":"InheritanceSpecifier","src":"811:7:230"},{"baseName":{"id":109657,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":49678,"src":"820:13:230"},"id":109658,"nodeType":"InheritanceSpecifier","src":"820:13:230"}],"canonicalName":"OptimismMintableERC20Factory","contractDependencies":[109645],"contractKind":"contract","documentation":{"id":109654,"nodeType":"StructuredDocumentation","src":"279:491:230","text":"@custom:proxied\n @custom:predeployed 0x4200000000000000000000000000000000000012\n @title OptimismMintableERC20Factory\n @notice OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20\n contracts on the network it's deployed to. Simplifies the deployment process for users\n who may be less familiar with deploying smart contracts. Designed to be backwards\n compatible with the older StandardL2ERC20Factory contract."},"fullyImplemented":true,"linearizedBaseContracts":[109831,49678,109417],"name":"OptimismMintableERC20Factory","nameLocation":"779:28:230","scope":109832,"usedErrors":[]}],"license":"MIT"},"id":230} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/OptimismPortal.json b/packages/sdk/src/forge-artifacts/OptimismPortal.json new file mode 100644 index 000000000000..4d3e3388ce41 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/OptimismPortal.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"depositTransaction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_gasLimit","type":"uint64","internalType":"uint64"},{"name":"_isCreation","type":"bool","internalType":"bool"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"donateETH","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizedWithdrawals","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_l2Oracle","type":"address","internalType":"contract L2OutputOracle"},{"name":"_systemConfig","type":"address","internalType":"contract SystemConfig"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOutputFinalized","inputs":[{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"l2Oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract L2OutputOracle"}],"stateMutability":"view"},{"type":"function","name":"l2Sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"minimumGasLimit","inputs":[{"name":"_byteCount","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"params","inputs":[],"outputs":[{"name":"prevBaseFee","type":"uint128","internalType":"uint128"},{"name":"prevBoughtGas","type":"uint64","internalType":"uint64"},{"name":"prevBlockNum","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"provenWithdrawals","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"outputRoot","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"l2OutputIndex","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"systemConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SystemConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"TransactionDeposited","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"version","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"opaqueData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"WithdrawalFinalized","inputs":[{"name":"withdrawalHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"WithdrawalProven","inputs":[{"name":"withdrawalHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BadTarget","inputs":[]},{"type":"error","name":"CallPaused","inputs":[]},{"type":"error","name":"GasEstimation","inputs":[]},{"type":"error","name":"LargeCalldata","inputs":[]},{"type":"error","name":"OutOfGas","inputs":[]},{"type":"error","name":"SmallGasLimit","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50620000206000808062000026565b6200028f565b600054610100900460ff1615808015620000475750600054600160ff909116105b806200007757506200006430620001c160201b6200191f1760201c565b15801562000077575060005460ff166001145b620000e05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000104576000805461ff0019166101001790555b603680546001600160a01b03199081166001600160a01b03878116919091179092556037805490911685831617905560358054610100600160a81b03191661010085841602179055603254166200016a57603280546001600160a01b03191661dead1790555b62000174620001d0565b8015620001bb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6001600160a01b03163b151590565b600054610100900460ff166200023d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d7565b600154600160c01b90046001600160401b03166000036200028d5760408051606081018252633b9aca0080825260006020830152436001600160401b031691909201819052600160c01b02176001555b565b615142806200029f6000396000f3fe6080604052600436106101125760003560e01c80638c3152e9116100a5578063a35d99df11610074578063cff0ab9611610059578063cff0ab961461039a578063e965084c1461043b578063e9e05c42146104c757600080fd5b8063a35d99df14610341578063c0c53b8b1461037a57600080fd5b80638c3152e9146102975780639b5f694a146102b75780639bf62d82146102e4578063a14238e71461031157600080fd5b806354fd4d50116100e157806354fd4d50146101fc5780635c975abb146102525780636dbffb78146102775780638b4c40b01461013757600080fd5b806333d7e2bd1461013e57806335e80ab314610195578063452a9320146101c75780634870496f146101dc57600080fd5b36610139576101373334620186a06000604051806020016040528060008152506104d5565b005b600080fd5b34801561014a57600080fd5b5060375461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101a157600080fd5b5060355461016b90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d357600080fd5b5061016b610692565b3480156101e857600080fd5b506101376101f7366004614709565b61072a565b34801561020857600080fd5b506102456040518060400160405280600581526020017f322e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161018c919061485b565b34801561025e57600080fd5b50610267610d2d565b604051901515815260200161018c565b34801561028357600080fd5b5061026761029236600461486e565b610dc0565b3480156102a357600080fd5b506101376102b2366004614887565b610e7d565b3480156102c357600080fd5b5060365461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102f057600080fd5b5060325461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561031d57600080fd5b5061026761032c36600461486e565b60336020526000908152604090205460ff1681565b34801561034d57600080fd5b5061036161035c3660046148e1565b6116b8565b60405167ffffffffffffffff909116815260200161018c565b34801561038657600080fd5b506101376103953660046148fc565b6116d1565b3480156103a657600080fd5b50600154610402906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161018c565b34801561044757600080fd5b5061049961045636600461486e565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff928316602085015291169082015260600161018c565b6101376104d5366004614955565b8260005a90508380156104fd575073ffffffffffffffffffffffffffffffffffffffff871615155b15610534576040517f13496fda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053e83516116b8565b67ffffffffffffffff168567ffffffffffffffff16101561058b576040517f4929b80800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156105c9576040517f73052b0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333281146105ea575033731111000000000000000000000000000000001111015b600034888888886040516020016106059594939291906149d2565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c3284604051610675919061485b565b60405180910390a45050610689828261193b565b50505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614a37565b905090565b610732610d2d565b15610769576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff160361082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e74726163740060648201526084015b60405180910390fd5b6036546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810186905260009173ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c19190614a74565b5190506108db6108d636869003860186614ad9565b611c12565b8114610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f6600000000000000000000000000000000000000000000006064820152608401610824565b600061097487611c6e565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610a8a5750805160365460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff9091169063a25ae55790602401606060405180830381865afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190614a74565b5114155b610b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e0000000000000000006064820152608401610824565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610bdf9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610bd5888a614b3f565b8a60400135611c9e565b610c6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f6600000000000000000000000000006064820152608401610824565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614bc3565b6036546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101839052600091610e759173ffffffffffffffffffffffffffffffffffffffff9091169063a25ae55790602401606060405180830381865afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190614a74565b602001516fffffffffffffffffffffffffffffffff16611cc2565b92915050565b565b610e85610d2d565b15610ebc576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60325473ffffffffffffffffffffffffffffffffffffffff1661dead14610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e006064820152608401610824565b6000610f7082611c6e565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff8082169483018590527001000000000000000000000000000000009091041691810191909152929350900361105b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2079657400000000000000000000000000006064820152608401610824565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec9190614be0565b81602001516fffffffffffffffffffffffffffffffff1610156111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a401610824565b6111d681602001516fffffffffffffffffffffffffffffffff16611cc2565b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a401610824565b60365460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015260009173ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561130f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113339190614a74565b82518151919250146113ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a401610824565b61140c81602001516fffffffffffffffffffffffffffffffff16611cc2565b6114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a401610824565b60008381526033602052604090205460ff161561155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a656400000000000000000000006064820152608401610824565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a08801516115ff93929190611d68565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061166490841515815260200190565b60405180910390a28015801561167a5750326001145b156116b1576040517feeae4ed300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60006116c5826010614c28565b610e7590615208614c58565b600054610100900460ff16158080156116f15750600054600160ff909116105b8061170b5750303b15801561170b575060005460ff166001145b611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610824565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156117f557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560378054909116858316179055603580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010085841602179055603254166118ae57603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b6118b6611dc6565b801561191957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090611971907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614c84565b9050600061197d611ed9565b90506000816020015160ff16826000015163ffffffff1661199e9190614cca565b90508215611ad5576001546000906119d5908390700100000000000000000000000000000000900467ffffffffffffffff16614d32565b90506000836040015160ff16836119ec9190614da6565b600154611a0c9084906fffffffffffffffffffffffffffffffff16614da6565b611a169190614cca565b600154909150600090611a6790611a409084906fffffffffffffffffffffffffffffffff16614e62565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16611f9a565b90506001861115611a9657611a93611a4082876040015160ff1660018a611a8e9190614c84565b611fb9565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611b08908490700100000000000000000000000000000000900467ffffffffffffffff16614c58565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611b95576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090611bc1906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816614ed6565b90506000611bd348633b9aca0061200e565b611bdd9083614f13565b905060005a611bec9088614c84565b905080821115611c0857611c08611c038284614c84565b612025565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611c51949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611c51979096959101614f27565b600080611caa86612053565b9050611cb881868686612085565b9695505050505050565b603654604080517ff4daa291000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f4daa2919160048083019260209291908290030181865afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d569190614be0565b611d609083614f7e565b421192915050565b6000806000611d788660006120b5565b905080611dae576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff16611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610824565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003610e7b5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260375483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614fbb565b6000611faf611fa985856120d3565b836120e3565b90505b9392505050565b6000670de0b6b3a7640000611ffa611fd18583614cca565b611fe390670de0b6b3a7640000614d32565b611ff585670de0b6b3a7640000614da6565b6120f2565b6120049086614da6565b611faf9190614cca565b60008183101561201e5781611fb2565b5090919050565b6000805a90505b825a6120389083614c84565b101561204e576120478261505a565b915061202c565b505050565b6060818051906020012060405160200161206f91815260200190565b6040516020818303038152906040529050919050565b60006120ac84612096878686612123565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561201e5781611fb2565b600081831261201e5781611fb2565b6000611fb2670de0b6b3a76400008361210a86612ba1565b6121149190614da6565b61211e9190614cca565b612de5565b60606000845111612190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401610824565b600061219b84613024565b905060006121a886613110565b90506000846040516020016121bf91815260200190565b60405160208183030381529060405290506000805b8451811015612b185760008582815181106121f1576121f1615092565b60200260200101519050845183111561228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401610824565b8260000361234557805180516020918201206040516122da926122b492910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610824565b61249c565b8051516020116123fb578051805160209182012060405161236f926122b492910190815260200190565b612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401610824565b80518451602080870191909120825191909201201461249c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401610824565b6124a860106001614f7e565b81602001515103612684578451830361261c576124e281602001516010815181106124d5576124d5615092565b6020026020010151613173565b96506000875111612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610824565b600186516125839190614c84565b8214612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610824565b505050505050611fb2565b600085848151811061263057612630615092565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061265b5761265b615092565b6020026020010151905061266e816132d3565b955061267b600186614f7e565b94505050612b05565b600281602001515103612a7d57600061269c826132f8565b90506000816000815181106126b3576126b3615092565b016020015160f81c905060006126ca6002836150c1565b6126d59060026150e3565b905060006126e6848360ff1661331c565b905060006126f48a8961331c565b905060006127028383613352565b905080835114612794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610824565b60ff8516600214806127a9575060ff85166003145b15612998578082511461283e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610824565b61285887602001516001815181106124d5576124d5615092565b9c5060008d51116128eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610824565b60018c516128f99190614c84565b8814612987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610824565b505050505050505050505050611fb2565b60ff851615806129ab575060ff85166001145b156129ea576129d787602001516001815181106129ca576129ca615092565b60200260200101516132d3565b99506129e3818a614f7e565b9850612a72565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401610824565b505050505050612b05565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401610824565b5080612b108161505a565b9150506121d4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401610824565b6000808213612c0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610824565b60006060612c1984613406565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213612e1657506000919050565b680755bf798b4a1bf1e58212612e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610824565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561304257613042614529565b60405190808252806020026020018201604052801561308757816020015b60408051808201909152606080825260208201528152602001906001900390816130605790505b50915060005b818110156131095760405180604001604052808583815181106130b2576130b2615092565b602002602001015181526020016130e18684815181106130d4576130d4615092565b60200260200101516134dc565b8152508382815181106130f6576130f6615092565b602090810291909101015260010161308d565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613168578060011b82018184015160001a8060041c8253600f81166001830153505060010161313a565b509295945050505050565b60606000806000613183856134ef565b91945092509050600081600181111561319e5761319e615106565b1461322b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d000000000000006064820152608401610824565b6132358284614f7e565b8551146132c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e6465720000000000000000000000006064820152608401610824565b6120ac85602001518484613f5c565b606060208260000151106132ef576132ea82613173565b610e75565b610e7582613ff0565b6060610e7561331783602001516000815181106124d5576124d5615092565b613110565b60608251821061333b5750604080516020810190915260008152610e75565b611fb2838384865161334d9190614c84565b614006565b6000808251845110613365578251613368565b83515b90505b80821080156133ef575082828151811061338757613387615092565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168483815181106133c6576133c6615092565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156133ff5781600101915061336b565b5092915050565b6000808211613471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610824565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060610e756134ea836141de565b6142c7565b6000806000808460000151116135ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610824565b6020840151805160001a607f81116135d2576000600160009450945094505050613f55565b60b781116137e05760006135e7608083614c84565b9050808760000151116136a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a401610824565b6001838101517fff0000000000000000000000000000000000000000000000000000000000000016908214158061371b57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b6137cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a401610824565b5060019550935060009250613f55915050565b60bf8111613b2e5760006137f560b783614c84565b9050808760000151116138b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a401610824565b60018301517fff0000000000000000000000000000000000000000000000000000000000000016600081900361398e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a401610824565b600184015160088302610100031c60378111613a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a401610824565b613a5c8184614f7e565b895111613b11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a401610824565b613b1c836001614f7e565b9750955060009450613f559350505050565b60f78111613c0f576000613b4360c083614c84565b905080876000015111613bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a401610824565b600195509350849250613f55915050565b6000613c1c60f783614c84565b905080876000015111613cd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a401610824565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613db5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a401610824565b600184015160088302610100031c60378111613e79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a401610824565b613e838184614f7e565b895111613f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a401610824565b613f43836001614f7e565b9750955060019450613f559350505050565b9193909250565b60608167ffffffffffffffff811115613f7757613f77614529565b6040519080825280601f01601f191660200182016040528015613fa1576020820181803683370190505b5090508115611fb2576000613fb68486614f7e565b90506020820160005b84811015613fd7578281015182820152602001613fbf565b84811115613fe6576000858301525b5050509392505050565b6060610e75826020015160008460000151613f5c565b60608182601f011015614075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610824565b8282840110156140e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610824565b8183018451101561414e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610824565b60608215801561416d57604051915060008252602082016040526141d5565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141a657805183526020928301920161418e565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116142a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610824565b50604080518082019091528151815260209182019181019190915290565b606060008060006142d7856134ef565b9194509250905060018160018111156142f2576142f2615106565b1461437f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d00000000000000006064820152608401610824565b845161438b8385614f7e565b14614418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e64657200000000000000000000000000006064820152608401610824565b604080516020808252610420820190925290816020015b604080518082019091526000808252602082015281526020019060019003908161442f5790505093506000835b865181101561451d576000806144a26040518060400160405280858c600001516144869190614c84565b8152602001858c6020015161449b9190614f7e565b90526134ef565b5091509150604051806040016040528083836144be9190614f7e565b8152602001848b602001516144d39190614f7e565b8152508885815181106144e8576144e8615092565b60209081029190910101526144fe600185614f7e565b935061450a8183614f7e565b6145149084614f7e565b9250505061445c565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561459f5761459f614529565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff811681146145c957600080fd5b50565b600082601f8301126145dd57600080fd5b813567ffffffffffffffff8111156145f7576145f7614529565b61462860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614558565b81815284602083860101111561463d57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561466c57600080fd5b60405160c0810167ffffffffffffffff828210818311171561469057614690614529565b8160405282935084358352602085013591506146ab826145a7565b816020840152604085013591506146c1826145a7565b816040840152606085013560608401526080850135608084015260a08501359150808211156146ef57600080fd5b506146fc858286016145cc565b60a0830152505092915050565b600080600080600085870360e081121561472257600080fd5b863567ffffffffffffffff8082111561473a57600080fd5b6147468a838b0161465a565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561477f57600080fd5b60408901955060c089013592508083111561479957600080fd5b828901925089601f8401126147ad57600080fd5b82359150808211156147be57600080fd5b508860208260051b84010111156147d457600080fd5b959894975092955050506020019190565b60005b838110156148005781810151838201526020016147e8565b838111156119195750506000910152565b600081518084526148298160208601602086016147e5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611fb26020830184614811565b60006020828403121561488057600080fd5b5035919050565b60006020828403121561489957600080fd5b813567ffffffffffffffff8111156148b057600080fd5b6148bc8482850161465a565b949350505050565b803567ffffffffffffffff811681146148dc57600080fd5b919050565b6000602082840312156148f357600080fd5b611fb2826148c4565b60008060006060848603121561491157600080fd5b833561491c816145a7565b9250602084013561492c816145a7565b9150604084013561493c816145a7565b809150509250925092565b80151581146145c957600080fd5b600080600080600060a0868803121561496d57600080fd5b8535614978816145a7565b94506020860135935061498d604087016148c4565b9250606086013561499d81614947565b9150608086013567ffffffffffffffff8111156149b957600080fd5b6149c5888289016145cc565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614a268160498501602087016147e5565b919091016049019695505050505050565b600060208284031215614a4957600080fd5b8151611fb2816145a7565b80516fffffffffffffffffffffffffffffffff811681146148dc57600080fd5b600060608284031215614a8657600080fd5b6040516060810181811067ffffffffffffffff82111715614aa957614aa9614529565b60405282518152614abc60208401614a54565b6020820152614acd60408401614a54565b60408201529392505050565b600060808284031215614aeb57600080fd5b6040516080810181811067ffffffffffffffff82111715614b0e57614b0e614529565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614b5a57614b5a614529565b8360051b6020614b6b818301614558565b868152918501918181019036841115614b8357600080fd5b865b84811015614bb757803586811115614b9d5760008081fd5b614ba936828b016145cc565b845250918301918301614b85565b50979650505050505050565b600060208284031215614bd557600080fd5b8151611fb281614947565b600060208284031215614bf257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614c4f57614c4f614bf9565b02949350505050565b600067ffffffffffffffff808316818516808303821115614c7b57614c7b614bf9565b01949350505050565b600082821015614c9657614c96614bf9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614cd957614cd9614c9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614d2d57614d2d614bf9565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615614d6c57614d6c614bf9565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615614da057614da0614bf9565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614de757614de7614bf9565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614e2257614e22614bf9565b60008712925087820587128484161615614e3e57614e3e614bf9565b87850587128184161615614e5457614e54614bf9565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614e9c57614e9c614bf9565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614ed057614ed0614bf9565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f0e57614f0e614bf9565b500290565b600082614f2257614f22614c9b565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152614f7260c0830184614811565b98975050505050505050565b60008219821115614f9157614f91614bf9565b500190565b805163ffffffff811681146148dc57600080fd5b805160ff811681146148dc57600080fd5b600060c08284031215614fcd57600080fd5b60405160c0810181811067ffffffffffffffff82111715614ff057614ff0614529565b604052614ffc83614f96565b815261500a60208401614faa565b602082015261501b60408401614faa565b604082015261502c60608401614f96565b606082015261503d60808401614f96565b608082015261504e60a08401614a54565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361508b5761508b614bf9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806150d4576150d4614c9b565b8060ff84160691505092915050565b600060ff821660ff8416808210156150fd576150fd614bf9565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"1240:19301:134:-:0;;;4633:218;;;;;;;;;-1:-1:-1;4657:187:134;4716:1;;;4657:10;:187::i;:::-;1240:19301;;5069:435;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;5258:8:134::1;:20:::0;;-1:-1:-1;;;;;;5258:20:134;;::::1;-1:-1:-1::0;;;;;5258:20:134;;::::1;::::0;;;::::1;::::0;;;5288:12:::1;:28:::0;;;;::::1;::::0;;::::1;;::::0;;5326:16:::1;:36:::0;;-1:-1:-1;;;;;;5326:36:134::1;5258:20;5326:36:::0;;::::1;;;::::0;;5376:8:::1;::::0;::::1;5372:91;;5414:8;:38:::0;;-1:-1:-1;;;;;;5414:38:134::1;1338:42:192;5414:38:134;::::0;;5372:91:::1;5472:25;:23;:25::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;5069:435:134;;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;8340:234:137:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;8415:6:137::1;:19:::0;-1:-1:-1;;;8415:19:137;::::1;-1:-1:-1::0;;;;;8415:19:137::1;;:24:::0;8411:157:::1;;8464:93;::::0;;::::1;::::0;::::1;::::0;;8494:6:::1;8464:93:::0;;;-1:-1:-1;8464:93:137::1;::::0;::::1;::::0;8541:12:::1;-1:-1:-1::0;;;;;8464:93:137::1;::::0;;;;;;;-1:-1:-1;;;8455:102:137::1;;:6;:102:::0;8411:157:::1;8340:234::o:0;628:407:357:-;1240:19301:134;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101125760003560e01c80638c3152e9116100a5578063a35d99df11610074578063cff0ab9611610059578063cff0ab961461039a578063e965084c1461043b578063e9e05c42146104c757600080fd5b8063a35d99df14610341578063c0c53b8b1461037a57600080fd5b80638c3152e9146102975780639b5f694a146102b75780639bf62d82146102e4578063a14238e71461031157600080fd5b806354fd4d50116100e157806354fd4d50146101fc5780635c975abb146102525780636dbffb78146102775780638b4c40b01461013757600080fd5b806333d7e2bd1461013e57806335e80ab314610195578063452a9320146101c75780634870496f146101dc57600080fd5b36610139576101373334620186a06000604051806020016040528060008152506104d5565b005b600080fd5b34801561014a57600080fd5b5060375461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101a157600080fd5b5060355461016b90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d357600080fd5b5061016b610692565b3480156101e857600080fd5b506101376101f7366004614709565b61072a565b34801561020857600080fd5b506102456040518060400160405280600581526020017f322e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161018c919061485b565b34801561025e57600080fd5b50610267610d2d565b604051901515815260200161018c565b34801561028357600080fd5b5061026761029236600461486e565b610dc0565b3480156102a357600080fd5b506101376102b2366004614887565b610e7d565b3480156102c357600080fd5b5060365461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102f057600080fd5b5060325461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561031d57600080fd5b5061026761032c36600461486e565b60336020526000908152604090205460ff1681565b34801561034d57600080fd5b5061036161035c3660046148e1565b6116b8565b60405167ffffffffffffffff909116815260200161018c565b34801561038657600080fd5b506101376103953660046148fc565b6116d1565b3480156103a657600080fd5b50600154610402906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161018c565b34801561044757600080fd5b5061049961045636600461486e565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff928316602085015291169082015260600161018c565b6101376104d5366004614955565b8260005a90508380156104fd575073ffffffffffffffffffffffffffffffffffffffff871615155b15610534576040517f13496fda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053e83516116b8565b67ffffffffffffffff168567ffffffffffffffff16101561058b576040517f4929b80800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156105c9576040517f73052b0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333281146105ea575033731111000000000000000000000000000000001111015b600034888888886040516020016106059594939291906149d2565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c3284604051610675919061485b565b60405180910390a45050610689828261193b565b50505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614a37565b905090565b610732610d2d565b15610769576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff160361082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e74726163740060648201526084015b60405180910390fd5b6036546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810186905260009173ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c19190614a74565b5190506108db6108d636869003860186614ad9565b611c12565b8114610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f6600000000000000000000000000000000000000000000006064820152608401610824565b600061097487611c6e565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610a8a5750805160365460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff9091169063a25ae55790602401606060405180830381865afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190614a74565b5114155b610b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e0000000000000000006064820152608401610824565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610bdf9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610bd5888a614b3f565b8a60400135611c9e565b610c6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f6600000000000000000000000000006064820152608401610824565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614bc3565b6036546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101839052600091610e759173ffffffffffffffffffffffffffffffffffffffff9091169063a25ae55790602401606060405180830381865afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190614a74565b602001516fffffffffffffffffffffffffffffffff16611cc2565b92915050565b565b610e85610d2d565b15610ebc576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60325473ffffffffffffffffffffffffffffffffffffffff1661dead14610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e006064820152608401610824565b6000610f7082611c6e565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff8082169483018590527001000000000000000000000000000000009091041691810191909152929350900361105b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2079657400000000000000000000000000006064820152608401610824565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec9190614be0565b81602001516fffffffffffffffffffffffffffffffff1610156111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a401610824565b6111d681602001516fffffffffffffffffffffffffffffffff16611cc2565b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a401610824565b60365460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015260009173ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561130f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113339190614a74565b82518151919250146113ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a401610824565b61140c81602001516fffffffffffffffffffffffffffffffff16611cc2565b6114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a401610824565b60008381526033602052604090205460ff161561155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a656400000000000000000000006064820152608401610824565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a08801516115ff93929190611d68565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061166490841515815260200190565b60405180910390a28015801561167a5750326001145b156116b1576040517feeae4ed300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60006116c5826010614c28565b610e7590615208614c58565b600054610100900460ff16158080156116f15750600054600160ff909116105b8061170b5750303b15801561170b575060005460ff166001145b611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610824565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156117f557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560378054909116858316179055603580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010085841602179055603254166118ae57603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b6118b6611dc6565b801561191957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090611971907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614c84565b9050600061197d611ed9565b90506000816020015160ff16826000015163ffffffff1661199e9190614cca565b90508215611ad5576001546000906119d5908390700100000000000000000000000000000000900467ffffffffffffffff16614d32565b90506000836040015160ff16836119ec9190614da6565b600154611a0c9084906fffffffffffffffffffffffffffffffff16614da6565b611a169190614cca565b600154909150600090611a6790611a409084906fffffffffffffffffffffffffffffffff16614e62565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16611f9a565b90506001861115611a9657611a93611a4082876040015160ff1660018a611a8e9190614c84565b611fb9565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611b08908490700100000000000000000000000000000000900467ffffffffffffffff16614c58565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611b95576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090611bc1906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816614ed6565b90506000611bd348633b9aca0061200e565b611bdd9083614f13565b905060005a611bec9088614c84565b905080821115611c0857611c08611c038284614c84565b612025565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611c51949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611c51979096959101614f27565b600080611caa86612053565b9050611cb881868686612085565b9695505050505050565b603654604080517ff4daa291000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f4daa2919160048083019260209291908290030181865afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d569190614be0565b611d609083614f7e565b421192915050565b6000806000611d788660006120b5565b905080611dae576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff16611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610824565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003610e7b5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260375483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190614fbb565b6000611faf611fa985856120d3565b836120e3565b90505b9392505050565b6000670de0b6b3a7640000611ffa611fd18583614cca565b611fe390670de0b6b3a7640000614d32565b611ff585670de0b6b3a7640000614da6565b6120f2565b6120049086614da6565b611faf9190614cca565b60008183101561201e5781611fb2565b5090919050565b6000805a90505b825a6120389083614c84565b101561204e576120478261505a565b915061202c565b505050565b6060818051906020012060405160200161206f91815260200190565b6040516020818303038152906040529050919050565b60006120ac84612096878686612123565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561201e5781611fb2565b600081831261201e5781611fb2565b6000611fb2670de0b6b3a76400008361210a86612ba1565b6121149190614da6565b61211e9190614cca565b612de5565b60606000845111612190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401610824565b600061219b84613024565b905060006121a886613110565b90506000846040516020016121bf91815260200190565b60405160208183030381529060405290506000805b8451811015612b185760008582815181106121f1576121f1615092565b60200260200101519050845183111561228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401610824565b8260000361234557805180516020918201206040516122da926122b492910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610824565b61249c565b8051516020116123fb578051805160209182012060405161236f926122b492910190815260200190565b612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401610824565b80518451602080870191909120825191909201201461249c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401610824565b6124a860106001614f7e565b81602001515103612684578451830361261c576124e281602001516010815181106124d5576124d5615092565b6020026020010151613173565b96506000875111612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610824565b600186516125839190614c84565b8214612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610824565b505050505050611fb2565b600085848151811061263057612630615092565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061265b5761265b615092565b6020026020010151905061266e816132d3565b955061267b600186614f7e565b94505050612b05565b600281602001515103612a7d57600061269c826132f8565b90506000816000815181106126b3576126b3615092565b016020015160f81c905060006126ca6002836150c1565b6126d59060026150e3565b905060006126e6848360ff1661331c565b905060006126f48a8961331c565b905060006127028383613352565b905080835114612794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610824565b60ff8516600214806127a9575060ff85166003145b15612998578082511461283e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610824565b61285887602001516001815181106124d5576124d5615092565b9c5060008d51116128eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610824565b60018c516128f99190614c84565b8814612987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610824565b505050505050505050505050611fb2565b60ff851615806129ab575060ff85166001145b156129ea576129d787602001516001815181106129ca576129ca615092565b60200260200101516132d3565b99506129e3818a614f7e565b9850612a72565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401610824565b505050505050612b05565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401610824565b5080612b108161505a565b9150506121d4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401610824565b6000808213612c0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610824565b60006060612c1984613406565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213612e1657506000919050565b680755bf798b4a1bf1e58212612e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610824565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561304257613042614529565b60405190808252806020026020018201604052801561308757816020015b60408051808201909152606080825260208201528152602001906001900390816130605790505b50915060005b818110156131095760405180604001604052808583815181106130b2576130b2615092565b602002602001015181526020016130e18684815181106130d4576130d4615092565b60200260200101516134dc565b8152508382815181106130f6576130f6615092565b602090810291909101015260010161308d565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613168578060011b82018184015160001a8060041c8253600f81166001830153505060010161313a565b509295945050505050565b60606000806000613183856134ef565b91945092509050600081600181111561319e5761319e615106565b1461322b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d000000000000006064820152608401610824565b6132358284614f7e565b8551146132c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e6465720000000000000000000000006064820152608401610824565b6120ac85602001518484613f5c565b606060208260000151106132ef576132ea82613173565b610e75565b610e7582613ff0565b6060610e7561331783602001516000815181106124d5576124d5615092565b613110565b60608251821061333b5750604080516020810190915260008152610e75565b611fb2838384865161334d9190614c84565b614006565b6000808251845110613365578251613368565b83515b90505b80821080156133ef575082828151811061338757613387615092565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168483815181106133c6576133c6615092565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156133ff5781600101915061336b565b5092915050565b6000808211613471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610824565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060610e756134ea836141de565b6142c7565b6000806000808460000151116135ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610824565b6020840151805160001a607f81116135d2576000600160009450945094505050613f55565b60b781116137e05760006135e7608083614c84565b9050808760000151116136a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a401610824565b6001838101517fff0000000000000000000000000000000000000000000000000000000000000016908214158061371b57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b6137cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a401610824565b5060019550935060009250613f55915050565b60bf8111613b2e5760006137f560b783614c84565b9050808760000151116138b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a401610824565b60018301517fff0000000000000000000000000000000000000000000000000000000000000016600081900361398e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a401610824565b600184015160088302610100031c60378111613a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a401610824565b613a5c8184614f7e565b895111613b11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a401610824565b613b1c836001614f7e565b9750955060009450613f559350505050565b60f78111613c0f576000613b4360c083614c84565b905080876000015111613bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a401610824565b600195509350849250613f55915050565b6000613c1c60f783614c84565b905080876000015111613cd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a401610824565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613db5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a401610824565b600184015160088302610100031c60378111613e79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a401610824565b613e838184614f7e565b895111613f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a401610824565b613f43836001614f7e565b9750955060019450613f559350505050565b9193909250565b60608167ffffffffffffffff811115613f7757613f77614529565b6040519080825280601f01601f191660200182016040528015613fa1576020820181803683370190505b5090508115611fb2576000613fb68486614f7e565b90506020820160005b84811015613fd7578281015182820152602001613fbf565b84811115613fe6576000858301525b5050509392505050565b6060610e75826020015160008460000151613f5c565b60608182601f011015614075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610824565b8282840110156140e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610824565b8183018451101561414e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610824565b60608215801561416d57604051915060008252602082016040526141d5565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141a657805183526020928301920161418e565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116142a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610824565b50604080518082019091528151815260209182019181019190915290565b606060008060006142d7856134ef565b9194509250905060018160018111156142f2576142f2615106565b1461437f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d00000000000000006064820152608401610824565b845161438b8385614f7e565b14614418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e64657200000000000000000000000000006064820152608401610824565b604080516020808252610420820190925290816020015b604080518082019091526000808252602082015281526020019060019003908161442f5790505093506000835b865181101561451d576000806144a26040518060400160405280858c600001516144869190614c84565b8152602001858c6020015161449b9190614f7e565b90526134ef565b5091509150604051806040016040528083836144be9190614f7e565b8152602001848b602001516144d39190614f7e565b8152508885815181106144e8576144e8615092565b60209081029190910101526144fe600185614f7e565b935061450a8183614f7e565b6145149084614f7e565b9250505061445c565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561459f5761459f614529565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff811681146145c957600080fd5b50565b600082601f8301126145dd57600080fd5b813567ffffffffffffffff8111156145f7576145f7614529565b61462860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614558565b81815284602083860101111561463d57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561466c57600080fd5b60405160c0810167ffffffffffffffff828210818311171561469057614690614529565b8160405282935084358352602085013591506146ab826145a7565b816020840152604085013591506146c1826145a7565b816040840152606085013560608401526080850135608084015260a08501359150808211156146ef57600080fd5b506146fc858286016145cc565b60a0830152505092915050565b600080600080600085870360e081121561472257600080fd5b863567ffffffffffffffff8082111561473a57600080fd5b6147468a838b0161465a565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561477f57600080fd5b60408901955060c089013592508083111561479957600080fd5b828901925089601f8401126147ad57600080fd5b82359150808211156147be57600080fd5b508860208260051b84010111156147d457600080fd5b959894975092955050506020019190565b60005b838110156148005781810151838201526020016147e8565b838111156119195750506000910152565b600081518084526148298160208601602086016147e5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611fb26020830184614811565b60006020828403121561488057600080fd5b5035919050565b60006020828403121561489957600080fd5b813567ffffffffffffffff8111156148b057600080fd5b6148bc8482850161465a565b949350505050565b803567ffffffffffffffff811681146148dc57600080fd5b919050565b6000602082840312156148f357600080fd5b611fb2826148c4565b60008060006060848603121561491157600080fd5b833561491c816145a7565b9250602084013561492c816145a7565b9150604084013561493c816145a7565b809150509250925092565b80151581146145c957600080fd5b600080600080600060a0868803121561496d57600080fd5b8535614978816145a7565b94506020860135935061498d604087016148c4565b9250606086013561499d81614947565b9150608086013567ffffffffffffffff8111156149b957600080fd5b6149c5888289016145cc565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614a268160498501602087016147e5565b919091016049019695505050505050565b600060208284031215614a4957600080fd5b8151611fb2816145a7565b80516fffffffffffffffffffffffffffffffff811681146148dc57600080fd5b600060608284031215614a8657600080fd5b6040516060810181811067ffffffffffffffff82111715614aa957614aa9614529565b60405282518152614abc60208401614a54565b6020820152614acd60408401614a54565b60408201529392505050565b600060808284031215614aeb57600080fd5b6040516080810181811067ffffffffffffffff82111715614b0e57614b0e614529565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614b5a57614b5a614529565b8360051b6020614b6b818301614558565b868152918501918181019036841115614b8357600080fd5b865b84811015614bb757803586811115614b9d5760008081fd5b614ba936828b016145cc565b845250918301918301614b85565b50979650505050505050565b600060208284031215614bd557600080fd5b8151611fb281614947565b600060208284031215614bf257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614c4f57614c4f614bf9565b02949350505050565b600067ffffffffffffffff808316818516808303821115614c7b57614c7b614bf9565b01949350505050565b600082821015614c9657614c96614bf9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614cd957614cd9614c9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614d2d57614d2d614bf9565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615614d6c57614d6c614bf9565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615614da057614da0614bf9565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614de757614de7614bf9565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614e2257614e22614bf9565b60008712925087820587128484161615614e3e57614e3e614bf9565b87850587128184161615614e5457614e54614bf9565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614e9c57614e9c614bf9565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614ed057614ed0614bf9565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f0e57614f0e614bf9565b500290565b600082614f2257614f22614c9b565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152614f7260c0830184614811565b98975050505050505050565b60008219821115614f9157614f91614bf9565b500190565b805163ffffffff811681146148dc57600080fd5b805160ff811681146148dc57600080fd5b600060c08284031215614fcd57600080fd5b60405160c0810181811067ffffffffffffffff82111715614ff057614ff0614529565b604052614ffc83614f96565b815261500a60208401614faa565b602082015261501b60408401614faa565b604082015261502c60608401614f96565b606082015261503d60808401614f96565b608082015261504e60a08401614a54565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361508b5761508b614bf9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806150d4576150d4614c9b565b8060ff84160691505092915050565b600060ff821660ff8416808210156150fd576150fd614bf9565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"1240:19301:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7115:86;7134:10;7146:9;1971:7;7184:5;7191:9;;;;;;;;;;;;7115:18;:86::i;:::-;1240:19301;;;;;2983:32;;;;;;;;;;-1:-1:-1;2983:32:134;;;;;;;;;;;212:42:357;200:55;;;182:74;;170:2;155:18;2983:32:134;;;;;;;;2739:40;;;;;;;;;;-1:-1:-1;2739:40:134;;;;;;;;;;;5757:101;;;;;;;;;;;;;:::i;8288:3825::-;;;;;;;;;;-1:-1:-1;8288:3825:134;;;;;:::i;:::-;;:::i;4530:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5981:105::-;;;;;;;;;;;;;:::i;:::-;;;5228:14:357;;5221:22;5203:41;;5191:2;5176:18;5981:105:134;5063:187:357;19926:180:134;;;;;;;;;;-1:-1:-1;19926:180:134;;;;;:::i;:::-;;:::i;12226:4818::-;;;;;;;;;;-1:-1:-1;12226:4818:134;;;;;:::i;:::-;;:::i;2867:30::-;;;;;;;;;;-1:-1:-1;2867:30:134;;;;;;;;2234:23;;;;;;;;;;-1:-1:-1;2234:23:134;;;;;;;;2348:52;;;;;;;;;;-1:-1:-1;2348:52:134;;;;;:::i;:::-;;;;;;;;;;;;;;;;6579:120;;;;;;;;;;-1:-1:-1;6579:120:134;;;;;:::i;:::-;;:::i;:::-;;;6799:18:357;6787:31;;;6769:50;;6757:2;6742:18;6579:120:134;6625:200:357;5069:435:134;;;;;;;;;;-1:-1:-1;5069:435:134;;;;;:::i;:::-;;:::i;3093:28:137:-;;;;;;;;;;-1:-1:-1;3093:28:137;;;;;;;;;;;;;;;;;;;;;;;;;7664:34:357;7652:47;;;7634:66;;7719:18;7773:15;;;7768:2;7753:18;;7746:43;7825:15;;7805:18;;;7798:43;7622:2;7607:18;3093:28:137;7436:411:357;2482:61:134;;;;;;;;;;-1:-1:-1;2482:61:134;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8054:25:357;;;8098:34;8168:15;;;8163:2;8148:18;;8141:43;8220:15;;8200:18;;;8193:43;8042:2;8027:18;2482:61:134;7852:390:357;17774:1855:134;;;;;;:::i;:::-;17980:9;3511:18:137;3532:9;3511:30;;18134:11:134::1;:32;;;;-1:-1:-1::0;18149:17:134::1;::::0;::::1;::::0;::::1;18134:32;18130:56;;;18175:11;;;;;;;;;;;;;;18130:56;18350:37;18373:5;:12;18350:15;:37::i;:::-;18338:49;;:9;:49;;;18334:77;;;18396:15;;;;;;;;;;;;;;18334:77;18801:7;18786:5;:12;:22;18782:50;;;18817:15;;;;;;;;;;;;;;18782:50;18938:10;18976:9;18962:23:::0;::::1;18958:108;;-1:-1:-1::0;19044:10:134::1;741:42:237::0;1213:27;18958:108:134::1;19323:23;19366:9;19377:6;19385:9;19396:11;19409:5;19349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19323:92;;1821:1;19589:3;19562:60;;19583:4;19562:60;;;19611:10;19562:60;;;;;;:::i;:::-;;;;;;;;17995:1634;;3642:29:137::0;3651:7;3660:10;3642:8;:29::i;:::-;3433:245;17774:1855:134;;;;;;:::o;5757:101::-;5798:7;5824:16;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5817:34;;5757:101;:::o;8288:3825::-;4414:8;:6;:8::i;:::-;4410:33;;;4431:12;;;;;;;;;;;;;;4410:33;8820:4:::1;8798:27;;:3;:10;;;:27;;::::0;8790:103:::1;;;::::0;::::1;::::0;;10435:2:357;8790:103:134::1;::::0;::::1;10417:21:357::0;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;10584:33;10564:18;;;10557:61;10635:19;;8790:103:134::1;;;;;;;;;9091:8;::::0;:36:::1;::::0;;;;::::1;::::0;::::1;10811:25:357::0;;;9070:18:134::1;::::0;9091:8:::1;;::::0;:20:::1;::::0;10784:18:357;;9091:36:134::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47:::0;;-1:-1:-1;9272:45:134::1;;;::::0;;::::1;::::0;::::1;9300:16:::0;9272:45:::1;:::i;:::-;:27;:45::i;:::-;9258:10;:59;9237:135;;;::::0;::::1;::::0;;12521:2:357;9237:135:134::1;::::0;::::1;12503:21:357::0;12560:2;12540:18;;;12533:30;12599:34;12579:18;;;12572:62;12670:11;12650:18;;;12643:39;12699:19;;9237:135:134::1;12319:405:357::0;9237:135:134::1;9483:22;9508:27;9531:3;9508:22;:27::i;:::-;9545:40;9588:33:::0;;;:17:::1;:33;::::0;;;;;;;;9545:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;9483:52;;-1:-1:-1;9545:76:134;10175:31;;:145:::1;;-1:-1:-1::0;10293:27:134;;10226:8:::1;::::0;10247:30:::1;::::0;;::::1;::::0;10226:52;;;;;12905:34:357;12893:47;;;10226:52:134::1;::::0;::::1;12875:66:357::0;10226:8:134::1;::::0;;::::1;::::0;:20:::1;::::0;12848:18:357;;10226:52:134::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63:::0;:94:::1;;10175:145;10154:247;;;::::0;::::1;::::0;;13154:2:357;10154:247:134::1;::::0;::::1;13136:21:357::0;13193:2;13173:18;;;13166:30;13232:34;13212:18;;;13205:62;13303:25;13283:18;;;13276:53;13346:19;;10154:247:134::1;12952:419:357::0;10154:247:134::1;10681:147;::::0;;::::1;::::0;::::1;13550:25:357::0;;;10637:18:134::1;13591::357::0;;;13584:34;;;13523:18;;10681:147:134::1;::::0;;;;;::::1;::::0;;;;;;10658:180;;10681:147:::1;10658:180:::0;;::::1;::::0;11253:22;;::::1;10811:25:357::0;;;10658:180:134;-1:-1:-1;11191:240:134::1;::::0;10784:18:357;11253:22:134::1;::::0;;;;;::::1;::::0;;;11191:240;;::::1;::::0;;;::::1;::::0;;::::1;11253:22;11191:240:::0;::::1;::::0;11253:22;11191:240:::1;11334:16:::0;;11191:240:::1;:::i;:::-;11375:16;:41;;;11191:37;:240::i;:::-;11170:337;;;::::0;::::1;::::0;;14952:2:357;11170:337:134::1;::::0;::::1;14934:21:357::0;14991:2;14971:18;;;14964:30;15030:34;15010:18;;;15003:62;15101:20;15081:18;;;15074:48;15139:19;;11170:337:134::1;14750:414:357::0;11170:337:134::1;11825:165;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;11911:15;11825:165:::0;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;-1:-1:-1;11789:33:134;;;:17:::1;:33:::0;;;;;:201;;;;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;;::::0;;::::1;::::0;;;;12095:10;;::::1;::::0;12083;;::::1;::::0;12050:56;;::::1;::::0;;::::1;::::0;;;::::1;::::0;11807:14;;12050:56:::1;::::0;-1:-1:-1;12050:56:134::1;8553:3560;;;;8288:3825:::0;;;;;:::o;5981:105::-;6020:12;6054:16;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19926:180::-;20052:8;;:36;;;;;;;;10811:25:357;;;20000:4:134;;20023:76;;20052:8;;;;;:20;;10784:18:357;;20052:36:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;20023:76;;:28;:76::i;:::-;20016:83;19926:180;-1:-1:-1;;19926:180:134:o;7422:77::-;:::o;12226:4818::-;4414:8;:6;:8::i;:::-;4410:33;;;4431:12;;;;;;;;;;;;;;4410:33;12594:8:::1;::::0;:39:::1;:8;1338:42:192;12594:39:134;12573:137;;;::::0;::::1;::::0;;15621:2:357;12573:137:134::1;::::0;::::1;15603:21:357::0;15660:2;15640:18;;;15633:30;15699:34;15679:18;;;15672:62;15770:33;15750:18;;;15743:61;15821:19;;12573:137:134::1;15419:427:357::0;12573:137:134::1;12793:22;12818:27;12841:3;12818:22;:27::i;:::-;12855:40;12898:33:::0;;;:17:::1;:33;::::0;;;;;;;12855:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;12793:52;;-1:-1:-1;13181:31:134;;13173:94:::1;;;::::0;::::1;::::0;;16053:2:357;13173:94:134::1;::::0;::::1;16035:21:357::0;16092:2;16072:18;;;16065:30;16131:34;16111:18;;;16104:62;16202:20;16182:18;;;16175:48;16240:19;;13173:94:134::1;15851:414:357::0;13173:94:134::1;13584:8;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13554:16;:26;;;:58;;;;13533:180;;;::::0;::::1;::::0;;16661:2:357;13533:180:134::1;::::0;::::1;16643:21:357::0;16700:2;16680:18;;;16673:30;16739:34;16719:18;;;16712:62;16810:34;16790:18;;;16783:62;16882:13;16861:19;;;16854:42;16913:19;;13533:180:134::1;16459:479:357::0;13533:180:134::1;14103:56;14132:16;:26;;;14103:56;;:28;:56::i;:::-;14082:172;;;::::0;::::1;::::0;;17145:2:357;14082:172:134::1;::::0;::::1;17127:21:357::0;17184:2;17164:18;;;17157:30;17223:34;17203:18;;;17196:62;17294:34;17274:18;;;17267:62;17366:7;17345:19;;;17338:36;17391:19;;14082:172:134::1;16943:473:357::0;14082:172:134::1;14464:8;::::0;14485:30:::1;::::0;;::::1;::::0;14464:52;;;;;12905:34:357;12893:47;;;14464:52:134::1;::::0;::::1;12875:66:357::0;14425:36:134::1;::::0;14464:8:::1;;::::0;:20:::1;::::0;12848:18:357;;14464:52:134::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14827:27:::0;;14804:19;;14425:91;;-1:-1:-1;14804:50:134::1;14783:170;;;::::0;::::1;::::0;;17623:2:357;14783:170:134::1;::::0;::::1;17605:21:357::0;17662:2;17642:18;;;17635:30;17701:34;17681:18;;;17674:62;17772:34;17752:18;;;17745:62;17844:11;17823:19;;;17816:40;17873:19;;14783:170:134::1;17421:477:357::0;14783:170:134::1;15052:48;15081:8;:18;;;15052:48;;:28;:48::i;:::-;15031:162;;;::::0;::::1;::::0;;18105:2:357;15031:162:134::1;::::0;::::1;18087:21:357::0;18144:2;18124:18;;;18117:30;18183:34;18163:18;;;18156:62;18254:34;18234:18;;;18227:62;18326:5;18305:19;;;18298:34;18349:19;;15031:162:134::1;17903:471:357::0;15031:162:134::1;15309:36;::::0;;;:20:::1;:36;::::0;;;;;::::1;;:45;15301:111;;;::::0;::::1;::::0;;18581:2:357;15301:111:134::1;::::0;::::1;18563:21:357::0;18620:2;18600:18;;;18593:30;18659:34;18639:18;;;18632:62;18730:23;18710:18;;;18703:51;18771:19;;15301:111:134::1;18379:417:357::0;15301:111:134::1;15492:36;::::0;;;:20:::1;:36;::::0;;;;;;;:43;;;::::1;15531:4;15492:43;::::0;;15640:10;;::::1;::::0;15629:8:::1;:21:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;16309:10;::::1;::::0;16321:12:::1;::::0;::::1;::::0;16335:9:::1;::::0;::::1;::::0;16346:8:::1;::::0;::::1;::::0;16285:70:::1;::::0;16309:10;16321:12;16335:9;16285:23:::1;:70::i;:::-;16423:8;:38:::0;;;::::1;1338:42:192;16423:38:134;::::0;;16620:44:::1;::::0;16270:85;;-1:-1:-1;16640:14:134;;16620:44:::1;::::0;::::1;::::0;16270:85;5228:14:357;5221:22;5203:41;;5191:2;5176:18;;5063:187;16620:44:134::1;;;;;;;;16928:16:::0;::::1;::::0;::::1;:61;;-1:-1:-1::0;16948:9:134::1;1016:1:192;16948:41:134;16928:61;16924:114;;;17012:15;;;;;;;;;;;;;;16924:114;12328:4716;;;;12226:4818:::0;:::o;6579:120::-;6644:6;6669:15;:10;6682:2;6669:15;:::i;:::-;:23;;6687:5;6669:23;:::i;5069:435::-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;19708:2:357;3146:190:43;;;19690:21:357;19747:2;19727:18;;;19720:30;19786:34;19766:18;;;19759:62;19857:16;19837:18;;;19830:44;19891:19;;3146:190:43;19506:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;5258:8:134::1;:20:::0;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;5288:12:::1;:28:::0;;;;::::1;::::0;;::::1;;::::0;;5326:16:::1;:36:::0;;;::::1;5258:20;5326:36:::0;;::::1;;;::::0;;5376:8:::1;::::0;::::1;5372:91;;5414:8;:38:::0;;;::::1;1338:42:192;5414:38:134;::::0;;5372:91:::1;5472:25;:23;:25::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;20073:36:357;;3531:14:43;;20061:2:357;20046:18;3531:14:43;;;;;;;3457:99;3090:472;5069:435:134;;;:::o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;3911:3974:137:-;4078:6;:19;4043:17;;4063:34;;4078:19;;;;;4063:12;:34;:::i;:::-;4043:54;;4108:28;4139:17;:15;:17::i;:::-;4108:48;;4166:26;4265:6;:27;;;4257:36;;4222:6;:23;;;4214:32;;4207:87;;;;:::i;:::-;4166:128;-1:-1:-1;4309:13:137;;4305:2229;;4666:6;:20;4629:19;;4651:59;;4691:19;;4666:20;;;;;4651:59;:::i;:::-;4629:81;;4724:19;4855:6;:34;;;4847:43;;4818:19;:73;;;;:::i;:::-;4762:6;:18;4747:50;;4785:12;;4762:18;;4747:50;:::i;:::-;4746:146;;;;:::i;:::-;5111:6;:18;4724:168;;-1:-1:-1;5033:17:137;;5053:232;;5096:50;;4724:168;;5111:18;;5096:50;:::i;:::-;5185:6;:21;;;5177:30;;5247:6;:21;;;5239:30;;5053:16;:232::i;:::-;5033:252;;5562:1;5550:9;:13;5546:741;;;5835:437;5882:239;5939:10;6004:6;:34;;;5996:43;;6096:1;6084:9;:13;;;;:::i;:::-;5882:16;:239::i;5835:437::-;5822:450;;5546:741;6380:49;;6481:42;6443:24;6510:12;6481:42;;;6380:6;6481:42;-1:-1:-1;;4305:2229:137;6628:6;:31;;6652:7;;6628:6;:20;;:31;;6652:7;;6628:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6728:6;:23;;;6720:32;;6688:6;:20;;;;;;;;;;;;6680:29;;6673:80;6669:128;;;6776:10;;;;;;;;;;;;;;6669:128;6908:6;:18;6858:20;;6881:46;;6908:18;;6881:16;;;:46;:::i;:::-;6858:69;;7409:15;7442:31;7451:13;7466:6;7442:8;:31::i;:::-;7427:46;;:12;:46;:::i;:::-;7409:64;;7753:15;7785:9;7771:23;;:11;:23;:::i;:::-;7753:41;;7818:7;7808;:17;7804:75;;;7841:27;7850:17;7860:7;7850;:17;:::i;:::-;7841:8;:27::i;:::-;3975:3910;;;;;;3911:3974;;:::o;4961:384:196:-;5060:7;5137:16;:24;;;5179:16;:26;;;5223:16;:41;;;5282:16;:32;;;5109:219;;;;;;;;;;22747:25:357;;;22803:2;22788:18;;22781:34;;;;22846:2;22831:18;;22824:34;22889:2;22874:18;;22867:34;22734:3;22719:19;;22516:391;5109:219:196;;;;;;;;;;;;;5086:252;;;;;;5079:259;;4961:384;;;:::o;4456:211::-;4590:9;;4601:10;;;;;4613;;;;;4625:9;;;;4636:12;;;;4650:8;;;;4579:80;;4543:7;;4579:80;;4590:9;;4601:10;4650:8;4579:80;;:::i;1041:343:206:-;1234:11;1261:16;1280:19;1294:4;1280:13;:19::i;:::-;1261:38;;1318:59;1350:3;1355:6;1363;1371:5;1318:31;:59::i;:::-;1309:68;1041:343;-1:-1:-1;;;;;;1041:343:206:o;20359:180:134:-;20494:8;;:38;;;;;;;;20440:4;;20494:8;;;:36;;:38;;;;;;;;;;;;;;:8;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20481:51;;:10;:51;:::i;:::-;20463:15;:69;;20359:180;-1:-1:-1;;20359:180:134:o;4419:2320:200:-;4589:4;4609:13;4632:15;4650:21;4660:7;4669:1;4650:9;:21::i;:::-;4632:39;;4782:10;4772:1146;;4894:10;4891:1;4884:21;5009:2;5005;4998:14;5747:56;5743:2;5736:68;5900:3;5896:2;5889:15;4772:1146;6666:4;6630;6589:9;6583:16;6549:2;6538:9;6534:18;6491:6;6449:7;6415:5;6389:309;6361:337;4419:2320;-1:-1:-1;;;;;;;4419:2320:200:o;8340:234:137:-;4888:13:43;;;;;;;4880:69;;;;;;;23908:2:357;4880:69:43;;;23890:21:357;23947:2;23927:18;;;23920:30;23986:34;23966:18;;;23959:62;24057:13;24037:18;;;24030:41;24088:19;;4880:69:43;23706:407:357;4880:69:43;8415:6:137::1;:19:::0;;;::::1;;;;:24:::0;8411:157:::1;;8464:93;::::0;;::::1;::::0;::::1;::::0;;8494:6:::1;8464:93:::0;;;-1:-1:-1;8464:93:137::1;::::0;::::1;::::0;8541:12:::1;8464:93;;::::0;;;;;;;8455:102;::::1;;:6;:102:::0;8340:234::o;7748:152:134:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7864:12:134;;:29;;;;;;;-1:-1:-1;;7864:12:134;;;;;:27;;:29;;;;;-1:-1:-1;;7864:29:134;;;;;;:12;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;537:161:189:-;616:6;641:50;656:28;671:6;679:4;656:14;:28::i;:::-;686:4;641:14;:50::i;:::-;634:57;;537:161;;;;;;:::o;1040:228::-;1138:6;1257:4;1180:72;1213:19;1220:12;1257:4;1213:19;:::i;:::-;1205:28;;:4;:28;:::i;:::-;1235:16;:9;1247:4;1235:16;:::i;:::-;1180:24;:72::i;:::-;1164:89;;:12;:89;:::i;:::-;1163:98;;;;:::i;413:105:69:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:69;;490:21;-1:-1:-1;413:105:69:o;407:192:190:-;461:9;484:18;505:9;484:30;;524:69;556:7;544:9;531:22;;:10;:22;:::i;:::-;:32;524:69;;;579:3;;;:::i;:::-;;;524:69;;;451:148;;407:192;:::o;2052:142:206:-;2116:18;2181:4;2171:15;;;;;;2154:33;;;;;;25677:19:357;;25721:2;25712:12;;25548:182;2154:33:206;;;;;;;;;;;;;2146:41;;2052:142;;;:::o;2253:281:205:-;2446:11;2482:45;2494:6;2502:24;2506:4;2512:6;2520:5;2502:3;:24::i;:::-;6693:17:191;;;;;;;6672;;;;;;;;;;:38;;6569:148;2482:45:205;2473:54;2253:281;-1:-1:-1;;;;;2253:281:205:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;311:102:71:-;367:6;397:1;392;:6;;:14;;405:1;392:14;;491:101;547:6;576:1;572;:5;:13;;584:1;572:13;;1208:273:106;1267:6;1391:36;491:4;1410:1;1399:8;1405:1;1399:5;:8::i;:::-;:12;;;;:::i;:::-;1398:28;;;;:::i;:::-;1391:6;:36::i;2830:6314:205:-;2923:19;2976:1;2962:4;:11;:15;2954:49;;;;;;;25937:2:357;2954:49:205;;;25919:21:357;25976:2;25956:18;;;25949:30;26015:23;25995:18;;;25988:51;26056:18;;2954:49:205;25735:345:357;2954:49:205;3014:23;3040:19;3052:6;3040:11;:19::i;:::-;3014:45;;3069:16;3088:21;3104:4;3088:15;:21::i;:::-;3069:40;;3119:26;3165:5;3148:23;;;;;;25677:19:357;;25721:2;25712:12;;25548:182;3148:23:205;;;;;;;;;;;;;3119:52;;3181:23;3295:9;3290:5790;3314:5;:12;3310:1;:16;3290:5790;;;3347:27;3377:5;3383:1;3377:8;;;;;;;;:::i;:::-;;;;;;;3347:38;;3516:3;:10;3497:15;:29;;3489:88;;;;;;;26476:2:357;3489:88:205;;;26458:21:357;26515:2;26495:18;;;26488:30;26554:34;26534:18;;;26527:62;26625:16;26605:18;;;26598:44;26659:19;;3489:88:205;26274:410:357;3489:88:205;3596:15;3615:1;3596:20;3592:837;;3768:19;;3758:30;;;;;;;3741:48;;3729:76;;3741:48;;3758:30;3741:48;25677:19:357;;;25721:2;25712:12;;25548:182;3741:48:205;;;;;;;;;;;;;3791:13;6693:17:191;;;;;;;6672;;;;;;;;;;:38;;6569:148;3729:76:205;3700:176;;;;;;;26891:2:357;3700:176:205;;;26873:21:357;26930:2;26910:18;;;26903:30;26969:31;26949:18;;;26942:59;27018:18;;3700:176:205;26689:353:357;3700:176:205;3592:837;;;3901:19;;:26;3931:2;-1:-1:-1;3897:532:205;;4097:19;;4087:30;;;;;;;4070:48;;4058:76;;4070:48;;4087:30;4070:48;25677:19:357;;;25721:2;25712:12;;25548:182;4058:76:205;4029:186;;;;;;;27249:2:357;4029:186:205;;;27231:21:357;27288:2;27268:18;;;27261:30;27327:34;27307:18;;;27300:62;27398:9;27378:18;;;27371:37;27425:19;;4029:186:205;27047:403:357;3897:532:205;4336:19;;6693:17:191;;;;;;;;;;6672;;;;;;;:38;4316:98:205;;;;;;;27657:2:357;4316:98:205;;;27639:21:357;27696:2;27676:18;;;27669:30;27735:34;27715:18;;;27708:62;27806:8;27786:18;;;27779:36;27832:19;;4316:98:205;27455:402:357;4316:98:205;936:14;803:2;949:1;936:14;:::i;:::-;4447:11;:19;;;:26;:48;4443:4627;;4538:3;:10;4519:15;:29;4515:1346;;5047:52;5067:11;:19;;;803:2;5067:31;;;;;;;;:::i;:::-;;;;;;;5047:19;:52::i;:::-;5038:61;;5145:1;5129:6;:13;:17;5121:89;;;;;;;28064:2:357;5121:89:205;;;28046:21:357;28103:2;28083:18;;;28076:30;28142:34;28122:18;;;28115:62;28213:29;28193:18;;;28186:57;28260:19;;5121:89:205;27862:423:357;5121:89:205;5322:1;5307:5;:12;:16;;;;:::i;:::-;5302:1;:21;5294:92;;;;;;;28492:2:357;5294:92:205;;;28474:21:357;28531:2;28511:18;;;28504:30;28570:34;28550:18;;;28543:62;28641:28;28621:18;;;28614:56;28687:19;;5294:92:205;28290:422:357;5294:92:205;5409:13;;;;;;;;4515:1346;5609:15;5633:3;5637:15;5633:20;;;;;;;;:::i;:::-;;;;;;;;;5627:27;;5609:45;;5676:33;5712:11;:19;;;5732:9;5712:30;;;;;;;;;;:::i;:::-;;;;;;;5676:66;;5780:20;5791:8;5780:10;:20::i;:::-;5764:36;-1:-1:-1;5822:20:205;5841:1;5822:20;;:::i;:::-;;;5447:414;;4443:4627;;;1105:1;5885:11;:19;;;:26;:59;5881:3189;;5964:17;5984:25;5997:11;5984:12;:25::i;:::-;5964:45;;6027:12;6048:4;6053:1;6048:7;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6074:12:205;6094:10;6103:1;6048:7;6094:10;:::i;:::-;6089:16;;:1;:16;:::i;:::-;6074:31;;6123:26;6152:25;6164:4;6170:6;6152:25;;:11;:25::i;:::-;6123:54;;6195:25;6223:33;6235:3;6240:15;6223:11;:33::i;:::-;6195:61;;6274:26;6303:51;6326:13;6341:12;6303:22;:51::i;:::-;6274:80;;6661:18;6637:13;:20;:42;6608:171;;;;;;;29281:2:357;6608:171:205;;;29263:21:357;29320:2;29300:18;;;29293:30;29359:34;29339:18;;;29332:62;29430:28;29410:18;;;29403:56;29476:19;;6608:171:205;29079:422:357;6608:171:205;6802:26;;;1447:1;6802:26;;:55;;-1:-1:-1;6832:25:205;;;1553:1;6832:25;6802:55;6798:2169;;;7498:18;7475:12;:19;:41;7442:185;;;;;;;29708:2:357;7442:185:205;;;29690:21:357;29747:2;29727:18;;;29720:30;29786:34;29766:18;;;29759:62;29857:31;29837:18;;;29830:59;29906:19;;7442:185:205;29506:425:357;7442:185:205;7985:43;8005:11;:19;;;8025:1;8005:22;;;;;;;;:::i;7985:43::-;7976:52;;8074:1;8058:6;:13;:17;8050:87;;;;;;;30138:2:357;8050:87:205;;;30120:21:357;30177:2;30157:18;;;30150:30;30216:34;30196:18;;;30189:62;30287:27;30267:18;;;30260:55;30332:19;;8050:87:205;29936:421:357;8050:87:205;8249:1;8234:5;:12;:16;;;;:::i;:::-;8229:1;:21;8221:90;;;;;;;30564:2:357;8221:90:205;;;30546:21:357;30603:2;30583:18;;;30576:30;30642:34;30622:18;;;30615:62;30713:26;30693:18;;;30686:54;30757:19;;8221:90:205;30362:420:357;8221:90:205;8334:13;;;;;;;;;;;;;;6798:2169;8376:31;;;;;:65;;-1:-1:-1;8411:30:205;;;1339:1;8411:30;8376:65;8372:595;;;8748:34;8759:11;:19;;;8779:1;8759:22;;;;;;;;:::i;:::-;;;;;;;8748:10;:34::i;:::-;8732:50;-1:-1:-1;8804:37:205;8823:18;8804:37;;:::i;:::-;;;8372:595;;;8888:60;;;;;30989:2:357;8888:60:205;;;30971:21:357;31028:2;31008:18;;;31001:30;31067:34;31047:18;;;31040:62;31138:20;31118:18;;;31111:48;31176:19;;8888:60:205;30787:414:357;8372:595:205;5946:3035;;;;;;5881:3189;;;9005:50;;;;;31408:2:357;9005:50:205;;;31390:21:357;31447:2;31427:18;;;31420:30;31486:34;31466:18;;;31459:62;31557:10;31537:18;;;31530:38;31585:19;;9005:50:205;31206:404:357;5881:3189:205;-1:-1:-1;3328:3:205;;;;:::i;:::-;;;;3290:5790;;;-1:-1:-1;9090:47:205;;;;;31817:2:357;9090:47:205;;;31799:21:357;31856:2;31836:18;;;31829:30;31895:34;31875:18;;;31868:62;31966:7;31946:18;;;31939:35;31991:19;;9090:47:205;31615:401:357;4596:2947:106;4644:8;4700:1;4696;:5;4688:27;;;;;;;32223:2:357;4688:27:106;;;32205:21:357;32262:1;32242:18;;;32235:29;32300:11;32280:18;;;32273:39;32329:18;;4688:27:106;32021:332:357;4688:27:106;5107:8;5145:2;5125:16;5138:1;5125:4;:16::i;:::-;5118:29;5175:3;:7;;;5161:22;;;;5208:17;;;6001:31;5997:35;;6052:5;;5459:2;6051:13;;;6068:32;6050:50;6120:5;;6119:13;;6136:33;6118:51;6189:5;;6188:13;;6205:33;6187:51;6258:5;;6257:13;;6274:33;6256:51;6327:5;;6326:13;;6343:32;6325:50;6395:5;;6394:13;;6411:30;6393:48;5398:31;5394:35;;5449:5;;5448:13;;5465:32;5447:50;5517:5;;5516:13;;5533:32;5515:50;5585:5;;5584:13;;5583:50;;5653:5;;5652:13;;5651:50;;5721:5;;5720:13;;;5719:50;;5787:5;;;:46;;6735:10;7125:43;7120:48;7232:71;:75;;;;7227:80;;;;7380:72;7375:77;7523:3;7517:9;;;-1:-1:-1;;4596:2947:106:o;1487:3103::-;1536:8;1718:21;1713:1;:26;1709:40;;-1:-1:-1;1748:1:106;;1487:3103;-1:-1:-1;1487:3103:106:o;1709:40::-;1948:21;1943:1;:26;1939:54;;1971:22;;;;;32560:2:357;1971:22:106;;;32542:21:357;32599:2;32579:18;;;32572:30;32638:14;32618:18;;;32611:42;32670:18;;1971:22:106;32358:336:357;1939:54:106;2266:5;2260:2;2255:7;;;2254:17;;-1:-1:-1;2535:8:106;2601:2;2559:29;2548:7;;;2547:41;2591:5;2547:49;2546:57;;2629:29;2625:33;;2621:37;;;3300:35;;;3355:5;;2935:2;3354:13;;;3371:32;3353:50;3423:5;;3422:13;;3421:51;;3492:5;;3491:13;;3508:34;3490:52;3562:5;;3561:13;;3560:53;;3633:5;;3632:13;;3649:35;3631:53;2941:32;2874:31;2870:35;;2925:5;;2924:13;;2923:50;;;2998:5;;;:40;;3058:5;3057:13;;;3074:35;3056:53;3127:5;;;3136:40;3127:50;4002:10;4502:49;4489:62;4564:3;:7;;;;4488:84;;;;;;-1:-1:-1;;1487:3103:106:o;9434:390:205:-;9553:13;;9500:24;;9553:13;9585:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9585:22:205;;;;;;;;;;;;;;;;9576:31;;9622:9;9617:201;9641:6;9637:1;:10;9617:201;;;9676:72;;;;;;;;9696:6;9703:1;9696:9;;;;;;;;:::i;:::-;;;;;;;9676:72;;;;9716:29;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;9716:18;:29::i;:::-;9676:72;;;9664:6;9671:1;9664:9;;;;;;;;:::i;:::-;;;;;;;;;;:84;9790:3;;9617:201;;;;9526:298;9434:390;;;:::o;4332:1978:191:-;4395:12;4419:21;4550:4;4544:11;4532:23;;4663:6;4657:13;4836:11;4830:4;4826:22;5195:4;5180:13;5176:24;5169:4;5165:9;5161:40;5151:8;5147:55;5141:4;5134:69;5293:13;5283:8;5276:31;;5434:4;5426:6;5422:17;5571:4;5561:8;5557:19;5662:4;5647:622;5675:11;5672:1;5669:18;5647:622;;;5854:1;5848:4;5844:12;5830;5826:31;5996:1;5984:10;5980:18;5974:25;5968:4;5963:37;6119:1;6113:4;6109:12;6101:6;6093:29;6249:4;6246:1;6242:12;6235:4;6227:6;6223:17;6215:40;-1:-1:-1;;5702:4:191;5695:12;5647:622;;;-1:-1:-1;6295:8:191;;4332:1978;-1:-1:-1;;;;;4332:1978:191:o;3993:464:203:-;4055:17;4085:18;4105;4125:20;4149:18;4163:3;4149:13;:18::i;:::-;4084:83;;-1:-1:-1;4084:83:203;-1:-1:-1;4084:83:203;-1:-1:-1;4198:21:203;4186:8;:33;;;;;;;;:::i;:::-;;4178:103;;;;;;;33090:2:357;4178:103:203;;;33072:21:357;33129:2;33109:18;;;33102:30;33168:34;33148:18;;;33141:62;33239:27;33219:18;;;33212:55;33284:19;;4178:103:203;32888:421:357;4178:103:203;4314:23;4327:10;4314;:23;:::i;:::-;4300:10;;:37;4292:102;;;;;;;33516:2:357;4292:102:203;;;33498:21:357;33555:2;33535:18;;;33528:30;33594:34;33574:18;;;33567:62;33665:22;33645:18;;;33638:50;33705:19;;4292:102:203;33314:416:357;4292:102:203;4412:38;4418:3;:7;;;4427:10;4439;4412:5;:38::i;10121:193:205:-;10195:16;10244:2;10229:5;:12;;;:17;:78;;10281:26;10301:5;10281:19;:26::i;:::-;10229:78;;;10249:29;10272:5;10249:22;:29::i;10495:172::-;10562:21;10606:54;10622:37;10642:5;:13;;;10656:1;10642:16;;;;;;;;:::i;10622:37::-;10606:15;:54::i;3805:237:191:-;3880:12;3918:6;:13;3908:6;:23;3904:70;;-1:-1:-1;3954:9:191;;;;;;;;;-1:-1:-1;3954:9:191;;3947:16;;3904:70;3990:45;3996:6;4004;4028;4012;:13;:22;;;;:::i;:::-;3990:5;:45::i;10892:321:205:-;10980:15;11007:11;11034:2;:9;11022:2;:9;:21;11021:47;;11059:2;:9;11021:47;;;11047:2;:9;11021:47;11007:61;;11078:129;11095:3;11085:7;:13;:43;;;;;11117:2;11120:7;11117:11;;;;;;;;:::i;:::-;;;;;;;;;11102:26;;;:2;11105:7;11102:11;;;;;;;;:::i;:::-;;;;;;;:26;11085:43;11078:129;;;11173:9;;;;;11078:129;;;10997:216;10892:321;;;;:::o;15328:575:106:-;15376:9;15409:1;15405;:5;15397:27;;;;;;;32223:2:357;15397:27:106;;;32205:21:357;32262:1;32242:18;;;32235:29;32300:11;32280:18;;;32273:39;32329:18;;15397:27:106;32021:332:357;15397:27:106;-1:-1:-1;15821:1:106;15473:34;-1:-1:-1;;15467:1:106;15463:49;15566:9;;;15546:18;15543:33;15540:1;15536:41;15530:48;15624:9;;;15612:10;15609:25;15606:1;15602:33;15596:40;15678:9;;;15670:6;15667:21;15664:1;15660:29;15654:36;15730:9;;;15724:4;15721:19;15718:1;15714:27;;;15708:34;;;15781:9;;;15776:3;15773:18;15770:1;15766:26;15760:33;15832:9;;;15824:18;;;15817:26;;15811:33;15876:9;;;-1:-1:-1;15862:25:106;;15328:575::o;3732:130:203:-;3791:21;3831:24;3840:14;3850:3;3840:9;:14::i;:::-;3831:8;:24::i;5246:4079::-;5335:15;5352;5369:17;5705:1;5692:3;:10;;;:14;5684:101;;;;;;;33937:2:357;5684:101:203;;;33919:21:357;33976:2;33956:18;;;33949:30;34015:34;33995:18;;;33988:62;34086:34;34066:18;;;34059:62;34158:12;34137:19;;;34130:41;34188:19;;5684:101:203;33735:478:357;5684:101:203;5816:7;;;;5898:10;;5796:17;5890:19;5943:4;5933:14;;5929:3390;;5999:1;6002;6005:21;5991:36;;;;;;;;;;5929:3390;6058:4;6048:6;:14;6044:3275;;6164:14;6181:13;6190:4;6181:6;:13;:::i;:::-;6164:30;;6247:6;6234:3;:10;;;:19;6209:140;;;;;;;34420:2:357;6209:140:203;;;34402:21:357;34459:2;34439:18;;;34432:30;34498:34;34478:18;;;34471:62;34569:34;34549:18;;;34542:62;34641:16;34620:19;;;34613:45;34675:19;;6209:140:203;34218:482:357;6209:140:203;6471:1;6462:11;;;6456:18;6476:14;6452:39;;6544:11;;;;:41;;-1:-1:-1;6559:26:203;;;;;;6544:41;6519:177;;;;;;;34907:2:357;6519:177:203;;;34889:21:357;34946:2;34926:18;;;34919:30;34985:34;34965:18;;;34958:62;35056:34;35036:18;;;35029:62;35128:15;35107:19;;;35100:44;35161:19;;6519:177:203;34705:481:357;6519:177:203;-1:-1:-1;6719:1:203;;-1:-1:-1;6722:6:203;-1:-1:-1;6730:21:203;;-1:-1:-1;6711:41:203;;-1:-1:-1;;6711:41:203;6044:3275;6783:4;6773:6;:14;6769:2550;;6831:19;6853:13;6862:4;6853:6;:13;:::i;:::-;6831:35;;6919:11;6906:3;:10;;;:24;6881:164;;;;;;;35393:2:357;6881:164:203;;;35375:21:357;35432:2;35412:18;;;35405:30;35471:34;35451:18;;;35444:62;35542:34;35522:18;;;35515:62;35614:19;35593;;;35586:48;35651:19;;6881:164:203;35191:485:357;6881:164:203;7167:1;7158:11;;7152:18;7172:14;7148:39;7060:25;7240:26;;;7215:143;;;;;;;35883:2:357;7215:143:203;;;35865:21:357;35922:2;35902:18;;;35895:30;35961:34;35941:18;;;35934:62;36032:34;36012:18;;;36005:62;36104:12;36083:19;;;36076:41;36134:19;;7215:143:203;35681:478:357;7215:143:203;7488:1;7479:11;;7473:18;7455:1;7451:19;;7446:3;7442:29;7438:54;7537:2;7528:11;;7520:96;;;;;;;36366:2:357;7520:96:203;;;36348:21:357;36405:2;36385:18;;;36378:30;36444:34;36424:18;;;36417:62;36515:34;36495:18;;;36488:62;36587:10;36566:19;;;36559:39;36615:19;;7520:96:203;36164:476:357;7520:96:203;7669:20;7683:6;7669:11;:20;:::i;:::-;7656:10;;:33;7631:168;;;;;;;36847:2:357;7631:168:203;;;36829:21:357;36886:2;36866:18;;;36859:30;36925:34;36905:18;;;36898:62;36996:34;36976:18;;;36969:62;37068:14;37047:19;;;37040:43;37100:19;;7631:168:203;36645:480:357;7631:168:203;7822:15;7826:11;7822:1;:15;:::i;:::-;7814:55;-1:-1:-1;7839:6:203;-1:-1:-1;7847:21:203;;-1:-1:-1;7814:55:203;;-1:-1:-1;;;;7814:55:203;6769:2550;7900:4;7890:6;:14;7886:1433;;8003:15;8021:13;8030:4;8021:6;:13;:::i;:::-;8003:31;;8070:7;8057:3;:10;;;:20;8049:107;;;;;;;37332:2:357;8049:107:203;;;37314:21:357;37371:2;37351:18;;;37344:30;37410:34;37390:18;;;37383:62;37481:34;37461:18;;;37454:62;37553:12;37532:19;;;37525:41;37583:19;;8049:107:203;37130:478:357;8049:107:203;8179:1;;-1:-1:-1;8182:7:203;-1:-1:-1;8179:1:203;;-1:-1:-1;8171:42:203;;-1:-1:-1;;8171:42:203;7886:1433;8270:20;8293:13;8302:4;8293:6;:13;:::i;:::-;8270:36;;8359:12;8346:3;:10;;;:25;8321:161;;;;;;;37815:2:357;8321:161:203;;;37797:21:357;37854:2;37834:18;;;37827:30;37893:34;37873:18;;;37866:62;37964:34;37944:18;;;37937:62;38036:15;38015:19;;;38008:44;38069:19;;8321:161:203;37613:481:357;8321:161:203;8604:1;8595:11;;8589:18;8609:14;8585:39;8497:25;8677:26;;;8652:141;;;;;;;38301:2:357;8652:141:203;;;38283:21:357;38340:2;38320:18;;;38313:30;38379:34;38359:18;;;38352:62;38450:34;38430:18;;;38423:62;38522:10;38501:19;;;38494:39;38550:19;;8652:141:203;38099:476:357;8652:141:203;8926:1;8917:11;;8911:18;8892:1;8888:20;;8883:3;8879:30;8875:55;8976:2;8966:12;;8958:95;;;;;;;38782:2:357;8958:95:203;;;38764:21:357;38821:2;38801:18;;;38794:30;38860:34;38840:18;;;38833:62;38931:34;38911:18;;;38904:62;39003:8;38982:19;;;38975:37;39029:19;;8958:95:203;38580:474:357;8958:95:203;9106:22;9121:7;9106:12;:22;:::i;:::-;9093:10;;:35;9068:168;;;;;;;39261:2:357;9068:168:203;;;39243:21:357;39300:2;39280:18;;;39273:30;39339:34;39319:18;;;39312:62;39410:34;39390:18;;;39383:62;39482:12;39461:19;;;39454:41;39512:19;;9068:168:203;39059:478:357;9068:168:203;9259:16;9263:12;9259:1;:16;:::i;:::-;9251:57;-1:-1:-1;9277:7:203;-1:-1:-1;9286:21:203;;-1:-1:-1;9251:57:203;;-1:-1:-1;;;;9251:57:203;5246:4079;;;;;;:::o;9585:737::-;9676:17;9722:7;9712:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9712:18:203;-1:-1:-1;9705:25:203;-1:-1:-1;9740:54:203;;9772:11;9740:54;10010:11;10024:36;10053:7;10045:4;10024:36;:::i;:::-;10010:50;;10115:2;10109:4;10105:13;10140:1;10154:87;10168:7;10165:1;10162:14;10154:87;;;10226:11;;;10220:18;10206:12;;;10199:40;10191:2;10184:10;10154:87;;;10264:7;10261:1;10258:14;10255:51;;;10302:1;10292:7;10286:4;10282:18;10275:29;10255:51;;;10079:237;9585:737;;;;;:::o;4847:137::-;4912:17;4948:29;4954:3;:7;;;4963:1;4966:3;:10;;;4948:5;:29::i;660:2816:191:-;752:12;824:7;808;818:2;808:12;:23;;800:50;;;;;;;39744:2:357;800:50:191;;;39726:21:357;39783:2;39763:18;;;39756:30;39822:16;39802:18;;;39795:44;39856:18;;800:50:191;39542:338:357;800:50:191;892:6;881:7;872:6;:16;:26;;864:53;;;;;;;39744:2:357;864:53:191;;;39726:21:357;39783:2;39763:18;;;39756:30;39822:16;39802:18;;;39795:44;39856:18;;864:53:191;39542:338:357;864:53:191;965:7;956:6;:16;939:6;:13;:33;;931:63;;;;;;;40087:2:357;931:63:191;;;40069:21:357;40126:2;40106:18;;;40099:30;40165:19;40145:18;;;40138:47;40202:18;;931:63:191;39885:341:357;931:63:191;1015:22;1078:15;;1106:1931;;;;3178:4;3172:11;3159:24;;3365:1;3354:9;3347:20;3413:4;3402:9;3398:20;3392:4;3385:34;1071:2362;;1106:1931;1288:4;1282:11;1269:24;;1947:2;1938:7;1934:16;2329:9;2322:17;2316:4;2312:28;2300:9;2289;2285:25;2281:60;2377:7;2373:2;2369:16;2629:6;2615:9;2608:17;2602:4;2598:28;2586:9;2578:6;2574:22;2570:57;2566:70;2403:389;2662:3;2658:2;2655:11;2403:389;;;2780:9;;2769:21;;2703:4;2695:13;;;;2735;2403:389;;;-1:-1:-1;;2810:26:191;;;3018:2;3001:11;3014:7;2997:25;2991:4;2984:39;-1:-1:-1;1071:2362:191;-1:-1:-1;3460:9:191;660:2816;-1:-1:-1;;;;660:2816:191:o;1298:390:203:-;-1:-1:-1;;;;;;;;;;;;;;;;;1453:1:203;1440:3;:10;:14;1432:101;;;;;;;33937:2:357;1432:101:203;;;33919:21:357;33976:2;33956:18;;;33949:30;34015:34;33995:18;;;33988:62;34086:34;34066:18;;;34059:62;34158:12;34137:19;;;34130:41;34188:19;;1432:101:203;33735:478:357;1432:101:203;-1:-1:-1;1640:41:203;;;;;;;;;1658:10;;1640:41;;1610:2;1601:12;;;1640:41;;;;;;;;1298:390::o;1840:1740::-;1901:21;1935:18;1955;1975:20;1999:18;2013:3;1999:13;:18::i;:::-;1934:83;;-1:-1:-1;1934:83:203;-1:-1:-1;1934:83:203;-1:-1:-1;2048:21:203;2036:8;:33;;;;;;;;:::i;:::-;;2028:102;;;;;;;40433:2:357;2028:102:203;;;40415:21:357;40472:2;40452:18;;;40445:30;40511:34;40491:18;;;40484:62;40582:26;40562:18;;;40555:54;40626:19;;2028:102:203;40231:420:357;2028:102:203;2176:10;;2149:23;2162:10;2149;:23;:::i;:::-;:37;2141:100;;;;;;;40858:2:357;2141:100:203;;;40840:21:357;40897:2;40877:18;;;40870:30;40936:34;40916:18;;;40909:62;41007:20;40987:18;;;40980:48;41045:19;;2141:100:203;40656:414:357;2141:100:203;2651:30;;;1123:2;2651:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2651:30:203;;;;;;;;;;;;;;-1:-1:-1;2644:37:203;-1:-1:-1;2692:17:203;2740:10;2760:681;2776:10;;2767:19;;2760:681;;;2803:18;2823;2846:150;2877:105;;;;;;;;2908:6;2895:3;:10;;;:19;;;;:::i;:::-;2877:105;;;;2972:6;2961:3;:7;;;2940:38;;;;:::i;:::-;2877:105;;2846:13;:150::i;:::-;2802:194;;;;;3201:153;;;;;;;;3248:10;3235;:23;;;;:::i;:::-;3201:153;;;;3332:6;3321:3;:7;;;3300:38;;;;:::i;:::-;3201:153;;;3183:4;3188:9;3183:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3369:14;3382:1;3369:14;;:::i;:::-;;-1:-1:-1;3407:23:203;3420:10;3407;:23;:::i;:::-;3397:33;;;;:::i;:::-;;;2788:653;;2760:681;;;-1:-1:-1;3541:23:203;;-1:-1:-1;3548:4:203;;1840:1740;-1:-1:-1;;;1840:1740:203:o;755:184:357:-;807:77;804:1;797:88;904:4;901:1;894:15;928:4;925:1;918:15;944:334;1015:2;1009:9;1071:2;1061:13;;1076:66;1057:86;1045:99;;1174:18;1159:34;;1195:22;;;1156:62;1153:88;;;1221:18;;:::i;:::-;1257:2;1250:22;944:334;;-1:-1:-1;944:334:357:o;1283:154::-;1369:42;1362:5;1358:54;1351:5;1348:65;1338:93;;1427:1;1424;1417:12;1338:93;1283:154;:::o;1442:589::-;1484:5;1537:3;1530:4;1522:6;1518:17;1514:27;1504:55;;1555:1;1552;1545:12;1504:55;1591:6;1578:20;1617:18;1613:2;1610:26;1607:52;;;1639:18;;:::i;:::-;1683:114;1791:4;1722:66;1715:4;1711:2;1707:13;1703:86;1699:97;1683:114;:::i;:::-;1822:2;1813:7;1806:19;1868:3;1861:4;1856:2;1848:6;1844:15;1840:26;1837:35;1834:55;;;1885:1;1882;1875:12;1834:55;1950:2;1943:4;1935:6;1931:17;1924:4;1915:7;1911:18;1898:55;1998:1;1973:16;;;1991:4;1969:27;1962:38;;;;1977:7;1442:589;-1:-1:-1;;;1442:589:357:o;2036:1032::-;2104:5;2152:4;2140:9;2135:3;2131:19;2127:30;2124:50;;;2170:1;2167;2160:12;2124:50;2203:2;2197:9;2245:4;2237:6;2233:17;2269:18;2337:6;2325:10;2322:22;2317:2;2305:10;2302:18;2299:46;2296:72;;;2348:18;;:::i;:::-;2388:10;2384:2;2377:22;2417:6;2408:15;;2460:9;2447:23;2439:6;2432:39;2523:2;2512:9;2508:18;2495:32;2480:47;;2536:33;2561:7;2536:33;:::i;:::-;2602:7;2597:2;2589:6;2585:15;2578:32;2662:2;2651:9;2647:18;2634:32;2619:47;;2675:33;2700:7;2675:33;:::i;:::-;2741:7;2736:2;2728:6;2724:15;2717:32;2810:2;2799:9;2795:18;2782:32;2777:2;2769:6;2765:15;2758:57;2877:3;2866:9;2862:19;2849:33;2843:3;2835:6;2831:16;2824:59;2934:3;2923:9;2919:19;2906:33;2892:47;;2962:2;2954:6;2951:14;2948:34;;;2978:1;2975;2968:12;2948:34;;3016:45;3057:3;3048:6;3037:9;3033:22;3016:45;:::i;:::-;3010:3;3002:6;2998:16;2991:71;;;2036:1032;;;;:::o;3073:1175::-;3275:6;3283;3291;3299;3307;3351:9;3342:7;3338:23;3381:3;3377:2;3373:12;3370:32;;;3398:1;3395;3388:12;3370:32;3438:9;3425:23;3467:18;3508:2;3500:6;3497:14;3494:34;;;3524:1;3521;3514:12;3494:34;3547:72;3611:7;3602:6;3591:9;3587:22;3547:72;:::i;:::-;3537:82;;3666:2;3655:9;3651:18;3638:32;3628:42;;3763:3;3694:66;3690:2;3686:75;3682:85;3679:105;;;3780:1;3777;3770:12;3679:105;3818:2;3807:9;3803:18;3793:28;;3874:3;3863:9;3859:19;3846:33;3830:49;;3904:2;3894:8;3891:16;3888:36;;;3920:1;3917;3910:12;3888:36;3958:8;3947:9;3943:24;3933:34;;4005:7;3998:4;3994:2;3990:13;3986:27;3976:55;;4027:1;4024;4017:12;3976:55;4067:2;4054:16;4040:30;;4093:2;4085:6;4082:14;4079:34;;;4109:1;4106;4099:12;4079:34;;4162:7;4157:2;4147:6;4144:1;4140:14;4136:2;4132:23;4128:32;4125:45;4122:65;;;4183:1;4180;4173:12;4122:65;3073:1175;;;;-1:-1:-1;3073:1175:357;;-1:-1:-1;;;4214:2:357;4206:11;;4236:6;3073:1175::o;4253:258::-;4325:1;4335:113;4349:6;4346:1;4343:13;4335:113;;;4425:11;;;4419:18;4406:11;;;4399:39;4371:2;4364:10;4335:113;;;4466:6;4463:1;4460:13;4457:48;;;-1:-1:-1;;4501:1:357;4483:16;;4476:27;4253:258::o;4516:317::-;4558:3;4596:5;4590:12;4623:6;4618:3;4611:19;4639:63;4695:6;4688:4;4683:3;4679:14;4672:4;4665:5;4661:16;4639:63;:::i;:::-;4747:2;4735:15;4752:66;4731:88;4722:98;;;;4822:4;4718:109;;4516:317;-1:-1:-1;;4516:317:357:o;4838:220::-;4987:2;4976:9;4969:21;4950:4;5007:45;5048:2;5037:9;5033:18;5025:6;5007:45;:::i;5255:180::-;5314:6;5367:2;5355:9;5346:7;5342:23;5338:32;5335:52;;;5383:1;5380;5373:12;5335:52;-1:-1:-1;5406:23:357;;5255:180;-1:-1:-1;5255:180:357:o;5440:375::-;5540:6;5593:2;5581:9;5572:7;5568:23;5564:32;5561:52;;;5609:1;5606;5599:12;5561:52;5649:9;5636:23;5682:18;5674:6;5671:30;5668:50;;;5714:1;5711;5704:12;5668:50;5737:72;5801:7;5792:6;5781:9;5777:22;5737:72;:::i;:::-;5727:82;5440:375;-1:-1:-1;;;;5440:375:357:o;6260:171::-;6327:20;;6387:18;6376:30;;6366:41;;6356:69;;6421:1;6418;6411:12;6356:69;6260:171;;;:::o;6436:184::-;6494:6;6547:2;6535:9;6526:7;6522:23;6518:32;6515:52;;;6563:1;6560;6553:12;6515:52;6586:28;6604:9;6586:28;:::i;6830:601::-;6979:6;6987;6995;7048:2;7036:9;7027:7;7023:23;7019:32;7016:52;;;7064:1;7061;7054:12;7016:52;7103:9;7090:23;7122:31;7147:5;7122:31;:::i;:::-;7172:5;-1:-1:-1;7229:2:357;7214:18;;7201:32;7242:33;7201:32;7242:33;:::i;:::-;7294:7;-1:-1:-1;7353:2:357;7338:18;;7325:32;7366:33;7325:32;7366:33;:::i;:::-;7418:7;7408:17;;;6830:601;;;;;:::o;8247:118::-;8333:5;8326:13;8319:21;8312:5;8309:32;8299:60;;8355:1;8352;8345:12;8370:732;8470:6;8478;8486;8494;8502;8555:3;8543:9;8534:7;8530:23;8526:33;8523:53;;;8572:1;8569;8562:12;8523:53;8611:9;8598:23;8630:31;8655:5;8630:31;:::i;:::-;8680:5;-1:-1:-1;8732:2:357;8717:18;;8704:32;;-1:-1:-1;8755:37:357;8788:2;8773:18;;8755:37;:::i;:::-;8745:47;;8844:2;8833:9;8829:18;8816:32;8857:30;8879:7;8857:30;:::i;:::-;8906:7;-1:-1:-1;8964:3:357;8949:19;;8936:33;8992:18;8981:30;;8978:50;;;9024:1;9021;9014:12;8978:50;9047:49;9088:7;9079:6;9068:9;9064:22;9047:49;:::i;:::-;9037:59;;;8370:732;;;;;;;;:::o;9107:642::-;9370:6;9365:3;9358:19;9407:6;9402:2;9397:3;9393:12;9386:28;9466:66;9457:6;9452:3;9448:16;9444:89;9439:2;9434:3;9430:12;9423:111;9587:6;9580:14;9573:22;9568:3;9564:32;9559:2;9554:3;9550:12;9543:54;9340:3;9626:6;9620:13;9642:60;9695:6;9690:2;9685:3;9681:12;9676:2;9668:6;9664:15;9642:60;:::i;:::-;9722:16;;;;9740:2;9718:25;;9107:642;-1:-1:-1;;;;;;9107:642:357:o;9977:251::-;10047:6;10100:2;10088:9;10079:7;10075:23;10071:32;10068:52;;;10116:1;10113;10106:12;10068:52;10148:9;10142:16;10167:31;10192:5;10167:31;:::i;10847:192::-;10926:13;;10979:34;10968:46;;10958:57;;10948:85;;11029:1;11026;11019:12;11044:617;11148:6;11201:2;11189:9;11180:7;11176:23;11172:32;11169:52;;;11217:1;11214;11207:12;11169:52;11250:2;11244:9;11292:2;11284:6;11280:15;11361:6;11349:10;11346:22;11325:18;11313:10;11310:34;11307:62;11304:88;;;11372:18;;:::i;:::-;11408:2;11401:22;11447:16;;11432:32;;11497:49;11542:2;11527:18;;11497:49;:::i;:::-;11492:2;11484:6;11480:15;11473:74;11580:49;11625:2;11614:9;11610:18;11580:49;:::i;:::-;11575:2;11563:15;;11556:74;11567:6;11044:617;-1:-1:-1;;;11044:617:357:o;11666:648::-;11760:6;11813:3;11801:9;11792:7;11788:23;11784:33;11781:53;;;11830:1;11827;11820:12;11781:53;11863:2;11857:9;11905:3;11897:6;11893:16;11975:6;11963:10;11960:22;11939:18;11927:10;11924:34;11921:62;11918:88;;;11986:18;;:::i;:::-;12026:10;12022:2;12015:22;;12074:9;12061:23;12053:6;12046:39;12146:2;12135:9;12131:18;12118:32;12113:2;12105:6;12101:15;12094:57;12212:2;12201:9;12197:18;12184:32;12179:2;12171:6;12167:15;12160:57;12278:2;12267:9;12263:18;12250:32;12245:2;12237:6;12233:15;12226:57;12302:6;12292:16;;;11666:648;;;;:::o;13811:934::-;13947:9;13981:18;14022:2;14014:6;14011:14;14008:40;;;14028:18;;:::i;:::-;14074:6;14071:1;14067:14;14100:4;14124:28;14148:2;14144;14140:11;14124:28;:::i;:::-;14186:19;;;14256:14;;;;14221:12;;;;14293:14;14282:26;;14279:46;;;14321:1;14318;14311:12;14279:46;14345:5;14359:353;14375:6;14370:3;14367:15;14359:353;;;14461:3;14448:17;14497:2;14484:11;14481:19;14478:109;;;14541:1;14570:2;14566;14559:14;14478:109;14612:57;14654:14;14640:11;14633:5;14629:23;14612:57;:::i;:::-;14600:70;;-1:-1:-1;14690:12:357;;;;14392;;14359:353;;;-1:-1:-1;14734:5:357;13811:934;-1:-1:-1;;;;;;;13811:934:357:o;15169:245::-;15236:6;15289:2;15277:9;15268:7;15264:23;15260:32;15257:52;;;15305:1;15302;15295:12;15257:52;15337:9;15331:16;15356:28;15378:5;15356:28;:::i;16270:184::-;16340:6;16393:2;16381:9;16372:7;16368:23;16364:32;16361:52;;;16409:1;16406;16399:12;16361:52;-1:-1:-1;16432:16:357;;16270:184;-1:-1:-1;16270:184:357:o;18801:::-;18853:77;18850:1;18843:88;18950:4;18947:1;18940:15;18974:4;18971:1;18964:15;18990:270;19029:7;19061:18;19106:2;19103:1;19099:10;19136:2;19133:1;19129:10;19192:3;19188:2;19184:12;19179:3;19176:21;19169:3;19162:11;19155:19;19151:47;19148:73;;;19201:18;;:::i;:::-;19241:13;;18990:270;-1:-1:-1;;;;18990:270:357:o;19265:236::-;19304:3;19332:18;19377:2;19374:1;19370:10;19407:2;19404:1;19400:10;19438:3;19434:2;19430:12;19425:3;19422:21;19419:47;;;19446:18;;:::i;:::-;19482:13;;19265:236;-1:-1:-1;;;;19265:236:357:o;20120:125::-;20160:4;20188:1;20185;20182:8;20179:34;;;20193:18;;:::i;:::-;-1:-1:-1;20230:9:357;;20120:125::o;20250:184::-;20302:77;20299:1;20292:88;20399:4;20396:1;20389:15;20423:4;20420:1;20413:15;20439:308;20478:1;20504;20494:35;;20509:18;;:::i;:::-;20626:66;20623:1;20620:73;20551:66;20548:1;20545:73;20541:153;20538:179;;;20697:18;;:::i;:::-;-1:-1:-1;20731:10:357;;20439:308::o;20752:369::-;20791:4;20827:1;20824;20820:9;20936:1;20868:66;20864:74;20861:1;20857:82;20852:2;20845:10;20841:99;20838:125;;;20943:18;;:::i;:::-;21062:1;20994:66;20990:74;20987:1;20983:82;20979:2;20975:91;20972:117;;;21069:18;;:::i;:::-;-1:-1:-1;;21106:9:357;;20752:369::o;21126:655::-;21165:7;21197:66;21289:1;21286;21282:9;21317:1;21314;21310:9;21362:1;21358:2;21354:10;21351:1;21348:17;21343:2;21339;21335:11;21331:35;21328:61;;;21369:18;;:::i;:::-;21408:66;21500:1;21497;21493:9;21547:1;21543:2;21538:11;21535:1;21531:19;21526:2;21522;21518:11;21514:37;21511:63;;;21554:18;;:::i;:::-;21600:1;21597;21593:9;21583:19;;21647:1;21643:2;21638:11;21635:1;21631:19;21626:2;21622;21618:11;21614:37;21611:63;;;21654:18;;:::i;:::-;21719:1;21715:2;21710:11;21707:1;21703:19;21698:2;21694;21690:11;21686:37;21683:63;;;21726:18;;:::i;:::-;-1:-1:-1;;;21766:9:357;;;;;21126:655;-1:-1:-1;;;21126:655:357:o;21786:367::-;21825:3;21860:1;21857;21853:9;21969:1;21901:66;21897:74;21894:1;21890:82;21885:2;21878:10;21874:99;21871:125;;;21976:18;;:::i;:::-;22095:1;22027:66;22023:74;22020:1;22016:82;22012:2;22008:91;22005:117;;;22102:18;;:::i;:::-;-1:-1:-1;;22138:9:357;;21786:367::o;22158:228::-;22198:7;22324:1;22256:66;22252:74;22249:1;22246:81;22241:1;22234:9;22227:17;22223:105;22220:131;;;22331:18;;:::i;:::-;-1:-1:-1;22371:9:357;;22158:228::o;22391:120::-;22431:1;22457;22447:35;;22462:18;;:::i;:::-;-1:-1:-1;22496:9:357;;22391:120::o;22912:656::-;23199:6;23188:9;23181:25;23162:4;23225:42;23315:2;23307:6;23303:15;23298:2;23287:9;23283:18;23276:43;23367:2;23359:6;23355:15;23350:2;23339:9;23335:18;23328:43;;23407:6;23402:2;23391:9;23387:18;23380:34;23451:6;23445:3;23434:9;23430:19;23423:35;23495:3;23489;23478:9;23474:19;23467:32;23516:46;23557:3;23546:9;23542:19;23534:6;23516:46;:::i;:::-;23508:54;22912:656;-1:-1:-1;;;;;;;;22912:656:357:o;23573:128::-;23613:3;23644:1;23640:6;23637:1;23634:13;23631:39;;;23650:18;;:::i;:::-;-1:-1:-1;23686:9:357;;23573:128::o;24118:167::-;24196:13;;24249:10;24238:22;;24228:33;;24218:61;;24275:1;24272;24265:12;24290:160;24367:13;;24420:4;24409:16;;24399:27;;24389:55;;24440:1;24437;24430:12;24455:888;24558:6;24611:3;24599:9;24590:7;24586:23;24582:33;24579:53;;;24628:1;24625;24618:12;24579:53;24661:2;24655:9;24703:3;24695:6;24691:16;24773:6;24761:10;24758:22;24737:18;24725:10;24722:34;24719:62;24716:88;;;24784:18;;:::i;:::-;24820:2;24813:22;24859:39;24888:9;24859:39;:::i;:::-;24851:6;24844:55;24932:47;24975:2;24964:9;24960:18;24932:47;:::i;:::-;24927:2;24919:6;24915:15;24908:72;25013:47;25056:2;25045:9;25041:18;25013:47;:::i;:::-;25008:2;25000:6;24996:15;24989:72;25094:48;25138:2;25127:9;25123:18;25094:48;:::i;:::-;25089:2;25081:6;25077:15;25070:73;25177:49;25221:3;25210:9;25206:19;25177:49;:::i;:::-;25171:3;25163:6;25159:16;25152:75;25261:50;25306:3;25295:9;25291:19;25261:50;:::i;:::-;25255:3;25243:16;;25236:76;25247:6;24455:888;-1:-1:-1;;;24455:888:357:o;25348:195::-;25387:3;25418:66;25411:5;25408:77;25405:103;;25488:18;;:::i;:::-;-1:-1:-1;25535:1:357;25524:13;;25348:195::o;26085:184::-;26137:77;26134:1;26127:88;26234:4;26231:1;26224:15;26258:4;26255:1;26248:15;28717:157;28747:1;28781:4;28778:1;28774:12;28805:3;28795:37;;28812:18;;:::i;:::-;28864:3;28857:4;28854:1;28850:12;28846:22;28841:27;;;28717:157;;;;:::o;28879:195::-;28917:4;28954;28951:1;28947:12;28986:4;28983:1;28979:12;29011:3;29006;29003:12;29000:38;;;29018:18;;:::i;:::-;29055:13;;;28879:195;-1:-1:-1;;;28879:195:357:o;32699:184::-;32751:77;32748:1;32741:88;32848:4;32845:1;32838:15;32872:4;32869:1;32862:15","linkReferences":{}},"methodIdentifiers":{"depositTransaction(address,uint256,uint64,bool,bytes)":"e9e05c42","donateETH()":"8b4c40b0","finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","finalizedWithdrawals(bytes32)":"a14238e7","guardian()":"452a9320","initialize(address,address,address)":"c0c53b8b","isOutputFinalized(uint256)":"6dbffb78","l2Oracle()":"9b5f694a","l2Sender()":"9bf62d82","minimumGasLimit(uint64)":"a35d99df","params()":"cff0ab96","paused()":"5c975abb","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f","provenWithdrawals(bytes32)":"e965084c","superchainConfig()":"35e80ab3","systemConfig()":"33d7e2bd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BadTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasEstimation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LargeCalldata\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SmallGasLimit\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"opaqueData\",\"type\":\"bytes\"}],\"name\":\"TransactionDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"WithdrawalProven\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isCreation\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"depositTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"donateETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"_l2Oracle\",\"type\":\"address\"},{\"internalType\":\"contract SystemConfig\",\"name\":\"_systemConfig\",\"type\":\"address\"},{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"}],\"name\":\"isOutputFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Oracle\",\"outputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_byteCount\",\"type\":\"uint64\"}],\"name\":\"minimumGasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"prevBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"prevBoughtGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNum\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"provenWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2OutputIndex\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"systemConfig\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@title OptimismPortal\",\"events\":{\"TransactionDeposited(address,address,uint256,bytes)\":{\"params\":{\"from\":\"Address that triggered the deposit transaction.\",\"opaqueData\":\"ABI encoded deposit data to be parsed off-chain.\",\"to\":\"Address that the deposit transaction is directed to.\",\"version\":\"Version of this deposit transaction event.\"}},\"WithdrawalFinalized(bytes32,bool)\":{\"params\":{\"success\":\"Whether the withdrawal transaction was successful.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}},\"WithdrawalProven(bytes32,address,address)\":{\"params\":{\"from\":\"Address that triggered the withdrawal transaction.\",\"to\":\"Address that the withdrawal transaction is directed to.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}}},\"kind\":\"dev\",\"methods\":{\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"params\":{\"_data\":\"Data to trigger the recipient with.\",\"_gasLimit\":\"Amount of L2 gas to purchase by burning gas on L1.\",\"_isCreation\":\"Whether or not the transaction is a contract creation.\",\"_to\":\"Target address on L2.\",\"_value\":\"ETH value to send to the recipient.\"}},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"params\":{\"_tx\":\"Withdrawal transaction to finalize.\"}},\"guardian()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Address of the guardian.\"}},\"initialize(address,address,address)\":{\"params\":{\"_l2Oracle\":\"Contract of the L2OutputOracle.\",\"_superchainConfig\":\"Contract of the SuperchainConfig.\",\"_systemConfig\":\"Contract of the SystemConfig.\"}},\"isOutputFinalized(uint256)\":{\"params\":{\"_l2OutputIndex\":\"Index of the L2 output to check.\"},\"returns\":{\"_0\":\"Whether or not the output is finalized.\"}},\"minimumGasLimit(uint64)\":{\"params\":{\"_byteCount\":\"Number of bytes in the calldata.\"},\"returns\":{\"_0\":\"The minimum gas limit for a deposit.\"}},\"paused()\":{\"returns\":{\"paused_\":\"Whether or not the contract is paused.\"}},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"params\":{\"_l2OutputIndex\":\"L2 output index to prove against.\",\"_outputRootProof\":\"Inclusion proof of the L2ToL1MessagePasser contract's storage root.\",\"_tx\":\"Withdrawal transaction to finalize.\",\"_withdrawalProof\":\"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract.\"}}},\"stateVariables\":{\"l2Oracle\":{\"custom:network-specific\":\"\"},\"spacer_53_0_1\":{\"custom:legacy\":\"@custom:spacer paused\"},\"systemConfig\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"2.6.0\"}},\"version\":1},\"userdoc\":{\"errors\":{\"BadTarget()\":[{\"notice\":\"Error for when a deposit or withdrawal is to a bad target.\"}],\"CallPaused()\":[{\"notice\":\"Error for when a method cannot be called when paused. This could be renamed to `Paused` in the future, but it collides with the `Paused` event.\"}],\"GasEstimation()\":[{\"notice\":\"Error for special gas estimation.\"}],\"LargeCalldata()\":[{\"notice\":\"Error for when a deposit has too much calldata.\"}],\"OutOfGas()\":[{\"notice\":\"Error returned when too much gas resource is consumed.\"}],\"SmallGasLimit()\":[{\"notice\":\"Error for when a deposit has too small of a gas limit.\"}]},\"events\":{\"TransactionDeposited(address,address,uint256,bytes)\":{\"notice\":\"Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2.\"},\"WithdrawalFinalized(bytes32,bool)\":{\"notice\":\"Emitted when a withdrawal transaction is finalized.\"},\"WithdrawalProven(bytes32,address,address)\":{\"notice\":\"Emitted when a withdrawal transaction is proven.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructs the OptimismPortal contract.\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"notice\":\"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience.\"},\"donateETH()\":{\"notice\":\"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock.\"},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"notice\":\"Finalizes a withdrawal transaction.\"},\"finalizedWithdrawals(bytes32)\":{\"notice\":\"A list of withdrawal hashes which have been successfully finalized.\"},\"guardian()\":{\"notice\":\"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead.\"},\"initialize(address,address,address)\":{\"notice\":\"Initializer.\"},\"isOutputFinalized(uint256)\":{\"notice\":\"Determine if a given output is finalized. Reverts if the call to l2Oracle.getL2Output reverts. Returns a boolean otherwise.\"},\"l2Oracle()\":{\"notice\":\"Contract of the L2OutputOracle.\"},\"l2Sender()\":{\"notice\":\"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction.\"},\"minimumGasLimit(uint64)\":{\"notice\":\"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility.\"},\"params()\":{\"notice\":\"EIP-1559 style gas parameters.\"},\"paused()\":{\"notice\":\"Getter for the current paused status.\"},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"notice\":\"Proves a withdrawal transaction.\"},\"provenWithdrawals(bytes32)\":{\"notice\":\"A mapping of withdrawal hashes to `ProvenWithdrawal` data.\"},\"superchainConfig()\":{\"notice\":\"Contract of the Superchain Config.\"},\"systemConfig()\":{\"notice\":\"Contract of the SystemConfig.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/OptimismPortal.sol\":\"OptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303\",\"dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww\"]},\"src/L1/OptimismPortal.sol\":{\"keccak256\":\"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2\",\"dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce\",\"dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/PortalErrors.sol\":{\"keccak256\":\"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1\",\"dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\",\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"BadTarget"},{"inputs":[],"type":"error","name":"CallPaused"},{"inputs":[],"type":"error","name":"GasEstimation"},{"inputs":[],"type":"error","name":"LargeCalldata"},{"inputs":[],"type":"error","name":"OutOfGas"},{"inputs":[],"type":"error","name":"SmallGasLimit"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"version","type":"uint256","indexed":true},{"internalType":"bytes","name":"opaqueData","type":"bytes","indexed":false}],"type":"event","name":"TransactionDeposited","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":true},{"internalType":"bool","name":"success","type":"bool","indexed":false}],"type":"event","name":"WithdrawalFinalized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"WithdrawalProven","anonymous":false},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint64","name":"_gasLimit","type":"uint64"},{"internalType":"bool","name":"_isCreation","type":"bool"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositTransaction"},{"inputs":[],"stateMutability":"payable","type":"function","name":"donateETH"},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"finalizedWithdrawals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract L2OutputOracle","name":"_l2Oracle","type":"address"},{"internalType":"contract SystemConfig","name":"_systemConfig","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"isOutputFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Oracle","outputs":[{"internalType":"contract L2OutputOracle","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Sender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"_byteCount","type":"uint64"}],"stateMutability":"pure","type":"function","name":"minimumGasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"params","outputs":[{"internalType":"uint128","name":"prevBaseFee","type":"uint128"},{"internalType":"uint64","name":"prevBoughtGas","type":"uint64"},{"internalType":"uint64","name":"prevBlockNum","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"provenWithdrawals","outputs":[{"internalType":"bytes32","name":"outputRoot","type":"bytes32"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"uint128","name":"l2OutputIndex","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"systemConfig","outputs":[{"internalType":"contract SystemConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"depositTransaction(address,uint256,uint64,bool,bytes)":{"params":{"_data":"Data to trigger the recipient with.","_gasLimit":"Amount of L2 gas to purchase by burning gas on L1.","_isCreation":"Whether or not the transaction is a contract creation.","_to":"Target address on L2.","_value":"ETH value to send to the recipient."}},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"params":{"_tx":"Withdrawal transaction to finalize."}},"guardian()":{"custom:legacy":"","returns":{"_0":"Address of the guardian."}},"initialize(address,address,address)":{"params":{"_l2Oracle":"Contract of the L2OutputOracle.","_superchainConfig":"Contract of the SuperchainConfig.","_systemConfig":"Contract of the SystemConfig."}},"isOutputFinalized(uint256)":{"params":{"_l2OutputIndex":"Index of the L2 output to check."},"returns":{"_0":"Whether or not the output is finalized."}},"minimumGasLimit(uint64)":{"params":{"_byteCount":"Number of bytes in the calldata."},"returns":{"_0":"The minimum gas limit for a deposit."}},"paused()":{"returns":{"paused_":"Whether or not the contract is paused."}},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"params":{"_l2OutputIndex":"L2 output index to prove against.","_outputRootProof":"Inclusion proof of the L2ToL1MessagePasser contract's storage root.","_tx":"Withdrawal transaction to finalize.","_withdrawalProof":"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructs the OptimismPortal contract."},"depositTransaction(address,uint256,uint64,bool,bytes)":{"notice":"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience."},"donateETH()":{"notice":"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock."},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"notice":"Finalizes a withdrawal transaction."},"finalizedWithdrawals(bytes32)":{"notice":"A list of withdrawal hashes which have been successfully finalized."},"guardian()":{"notice":"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead."},"initialize(address,address,address)":{"notice":"Initializer."},"isOutputFinalized(uint256)":{"notice":"Determine if a given output is finalized. Reverts if the call to l2Oracle.getL2Output reverts. Returns a boolean otherwise."},"l2Oracle()":{"notice":"Contract of the L2OutputOracle."},"l2Sender()":{"notice":"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction."},"minimumGasLimit(uint64)":{"notice":"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility."},"params()":{"notice":"EIP-1559 style gas parameters."},"paused()":{"notice":"Getter for the current paused status."},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"notice":"Proves a withdrawal transaction."},"provenWithdrawals(bytes32)":{"notice":"A mapping of withdrawal hashes to `ProvenWithdrawal` data."},"superchainConfig()":{"notice":"Contract of the Superchain Config."},"systemConfig()":{"notice":"Contract of the SystemConfig."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/OptimismPortal.sol":"OptimismPortal"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L2OutputOracle.sol":{"keccak256":"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42","urls":["bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303","dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww"],"license":"MIT"},"src/L1/OptimismPortal.sol":{"keccak256":"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a","urls":["bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2","dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L1/SystemConfig.sol":{"keccak256":"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a","urls":["bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce","dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/PortalErrors.sol":{"keccak256":"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558","urls":["bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1","dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":88262,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"params","offset":0,"slot":"1","type":"t_struct(ResourceParams)88245_storage"},{"astId":88267,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)48_storage"},{"astId":86489,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"l2Sender","offset":0,"slot":"50","type":"t_address"},{"astId":86494,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"finalizedWithdrawals","offset":0,"slot":"51","type":"t_mapping(t_bytes32,t_bool)"},{"astId":86500,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"provenWithdrawals","offset":0,"slot":"52","type":"t_mapping(t_bytes32,t_struct(ProvenWithdrawal)86478_storage)"},{"astId":86503,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"spacer_53_0_1","offset":0,"slot":"53","type":"t_bool"},{"astId":86507,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"superchainConfig","offset":1,"slot":"53","type":"t_contract(SuperchainConfig)88793"},{"astId":86511,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"l2Oracle","offset":0,"slot":"54","type":"t_contract(L2OutputOracle)86435"},{"astId":86515,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"systemConfig","offset":0,"slot":"55","type":"t_contract(SystemConfig)89607"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)48_storage":{"encoding":"inplace","label":"uint256[48]","numberOfBytes":"1536","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(L2OutputOracle)86435":{"encoding":"inplace","label":"contract L2OutputOracle","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_contract(SystemConfig)89607":{"encoding":"inplace","label":"contract SystemConfig","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(ProvenWithdrawal)86478_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)","numberOfBytes":"32","value":"t_struct(ProvenWithdrawal)86478_storage"},"t_struct(ProvenWithdrawal)86478_storage":{"encoding":"inplace","label":"struct OptimismPortal.ProvenWithdrawal","numberOfBytes":"64","members":[{"astId":86473,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"outputRoot","offset":0,"slot":"0","type":"t_bytes32"},{"astId":86475,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"timestamp","offset":0,"slot":"1","type":"t_uint128"},{"astId":86477,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"l2OutputIndex","offset":16,"slot":"1","type":"t_uint128"}]},"t_struct(ResourceParams)88245_storage":{"encoding":"inplace","label":"struct ResourceMetering.ResourceParams","numberOfBytes":"32","members":[{"astId":88240,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"prevBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":88242,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"prevBoughtGas","offset":16,"slot":"0","type":"t_uint64"},{"astId":88244,"contract":"src/L1/OptimismPortal.sol:OptimismPortal","label":"prevBlockNum","offset":24,"slot":"0","type":"t_uint64"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":{"notice":"Constructs the OptimismPortal contract."},"depositTransaction(address,uint256,uint64,bool,bytes)":{"notice":"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience."},"donateETH()":{"notice":"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock."},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"notice":"Finalizes a withdrawal transaction."},"finalizedWithdrawals(bytes32)":{"notice":"A list of withdrawal hashes which have been successfully finalized."},"guardian()":{"notice":"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead."},"initialize(address,address,address)":{"notice":"Initializer."},"isOutputFinalized(uint256)":{"notice":"Determine if a given output is finalized. Reverts if the call to l2Oracle.getL2Output reverts. Returns a boolean otherwise."},"l2Oracle()":{"notice":"Contract of the L2OutputOracle."},"l2Sender()":{"notice":"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction."},"minimumGasLimit(uint64)":{"notice":"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility."},"params()":{"notice":"EIP-1559 style gas parameters."},"paused()":{"notice":"Getter for the current paused status."},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"notice":"Proves a withdrawal transaction."},"provenWithdrawals(bytes32)":{"notice":"A mapping of withdrawal hashes to `ProvenWithdrawal` data."},"superchainConfig()":{"notice":"Contract of the Superchain Config."},"systemConfig()":{"notice":"Contract of the SystemConfig."},"version()":{"notice":"Semantic version."}},"events":{"TransactionDeposited(address,address,uint256,bytes)":{"notice":"Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2."},"WithdrawalFinalized(bytes32,bool)":{"notice":"Emitted when a withdrawal transaction is finalized."},"WithdrawalProven(bytes32,address,address)":{"notice":"Emitted when a withdrawal transaction is proven."}},"errors":{"BadTarget()":[{"notice":"Error for when a deposit or withdrawal is to a bad target."}],"CallPaused()":[{"notice":"Error for when a method cannot be called when paused. This could be renamed to `Paused` in the future, but it collides with the `Paused` event."}],"GasEstimation()":[{"notice":"Error for special gas estimation."}],"LargeCalldata()":[{"notice":"Error for when a deposit has too much calldata."}],"OutOfGas()":[{"notice":"Error returned when too much gas resource is consumed."}],"SmallGasLimit()":[{"notice":"Error for when a deposit has too small of a gas limit."}]},"notice":"The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."},"devdoc":{"version":1,"kind":"dev","methods":{"depositTransaction(address,uint256,uint64,bool,bytes)":{"params":{"_data":"Data to trigger the recipient with.","_gasLimit":"Amount of L2 gas to purchase by burning gas on L1.","_isCreation":"Whether or not the transaction is a contract creation.","_to":"Target address on L2.","_value":"ETH value to send to the recipient."}},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"params":{"_tx":"Withdrawal transaction to finalize."}},"guardian()":{"returns":{"_0":"Address of the guardian."}},"initialize(address,address,address)":{"params":{"_l2Oracle":"Contract of the L2OutputOracle.","_superchainConfig":"Contract of the SuperchainConfig.","_systemConfig":"Contract of the SystemConfig."}},"isOutputFinalized(uint256)":{"params":{"_l2OutputIndex":"Index of the L2 output to check."},"returns":{"_0":"Whether or not the output is finalized."}},"minimumGasLimit(uint64)":{"params":{"_byteCount":"Number of bytes in the calldata."},"returns":{"_0":"The minimum gas limit for a deposit."}},"paused()":{"returns":{"paused_":"Whether or not the contract is paused."}},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"params":{"_l2OutputIndex":"L2 output index to prove against.","_outputRootProof":"Inclusion proof of the L2ToL1MessagePasser contract's storage root.","_tx":"Withdrawal transaction to finalize.","_withdrawalProof":"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."}}},"events":{"TransactionDeposited(address,address,uint256,bytes)":{"params":{"from":"Address that triggered the deposit transaction.","opaqueData":"ABI encoded deposit data to be parsed off-chain.","to":"Address that the deposit transaction is directed to.","version":"Version of this deposit transaction event."}},"WithdrawalFinalized(bytes32,bool)":{"params":{"success":"Whether the withdrawal transaction was successful.","withdrawalHash":"Hash of the withdrawal transaction."}},"WithdrawalProven(bytes32,address,address)":{"params":{"from":"Address that triggered the withdrawal transaction.","to":"Address that the withdrawal transaction is directed to.","withdrawalHash":"Hash of the withdrawal transaction."}}}},"ast":{"absolutePath":"src/L1/OptimismPortal.sol","id":87105,"exportedSymbols":{"AddressAliasHelper":[111913],"BadTarget":[103969],"CallPaused":[103990],"Constants":[103096],"GasEstimation":[103993],"Hashing":[103936],"ISemver":[109417],"Initializable":[49678],"L2OutputOracle":[86435],"LargeCalldata":[103972],"NoValue":[103984],"OnlyCustomGasToken":[103981],"OptimismPortal":[87104],"ResourceMetering":[88581],"SafeCall":[104213],"SecureMerkleTrie":[106033],"SmallGasLimit":[103975],"SuperchainConfig":[88793],"SystemConfig":[89607],"TransferFailed":[103978],"Types":[104349],"Unauthorized":[103987]},"nodeType":"SourceUnit","src":"32:20510:134","nodes":[{"id":86437,"nodeType":"PragmaDirective","src":"32:23:134","nodes":[],"literals":["solidity","0.8",".15"]},{"id":86439,"nodeType":"ImportDirective","src":"57:86:134","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":49679,"symbolAliases":[{"foreign":{"id":86438,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"66:13:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86441,"nodeType":"ImportDirective","src":"144:54:134","nodes":[],"absolutePath":"src/libraries/SafeCall.sol","file":"src/libraries/SafeCall.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":104214,"symbolAliases":[{"foreign":{"id":86440,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104213,"src":"153:8:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86443,"nodeType":"ImportDirective","src":"199:59:134","nodes":[],"absolutePath":"src/L1/L2OutputOracle.sol","file":"src/L1/L2OutputOracle.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":86436,"symbolAliases":[{"foreign":{"id":86442,"name":"L2OutputOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86435,"src":"208:14:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86445,"nodeType":"ImportDirective","src":"259:55:134","nodes":[],"absolutePath":"src/L1/SystemConfig.sol","file":"src/L1/SystemConfig.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":89608,"symbolAliases":[{"foreign":{"id":86444,"name":"SystemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89607,"src":"268:12:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86447,"nodeType":"ImportDirective","src":"315:63:134","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":86446,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"324:16:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86449,"nodeType":"ImportDirective","src":"379:56:134","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":86448,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"388:9:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86451,"nodeType":"ImportDirective","src":"436:48:134","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":86450,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"445:5:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86453,"nodeType":"ImportDirective","src":"485:52:134","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":103937,"symbolAliases":[{"foreign":{"id":86452,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"494:7:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86455,"nodeType":"ImportDirective","src":"538:75:134","nodes":[],"absolutePath":"src/libraries/trie/SecureMerkleTrie.sol","file":"src/libraries/trie/SecureMerkleTrie.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":106034,"symbolAliases":[{"foreign":{"id":86454,"name":"SecureMerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106033,"src":"547:16:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86457,"nodeType":"ImportDirective","src":"614:71:134","nodes":[],"absolutePath":"src/vendor/AddressAliasHelper.sol","file":"src/vendor/AddressAliasHelper.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":111914,"symbolAliases":[{"foreign":{"id":86456,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"623:18:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86459,"nodeType":"ImportDirective","src":"686:63:134","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":88582,"symbolAliases":[{"foreign":{"id":86458,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88581,"src":"695:16:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86461,"nodeType":"ImportDirective","src":"750:52:134","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":86460,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"759:7:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86463,"nodeType":"ImportDirective","src":"803:56:134","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":86462,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"812:9:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86464,"nodeType":"ImportDirective","src":"860:40:134","nodes":[],"absolutePath":"src/libraries/PortalErrors.sol","file":"src/libraries/PortalErrors.sol","nameLocation":"-1:-1:-1","scope":87105,"sourceUnit":103994,"symbolAliases":[],"unitAlias":""},{"id":87104,"nodeType":"ContractDefinition","src":"1240:19301:134","nodes":[{"id":86478,"nodeType":"StructDefinition","src":"1608:117:134","nodes":[],"canonicalName":"OptimismPortal.ProvenWithdrawal","members":[{"constant":false,"id":86473,"mutability":"mutable","name":"outputRoot","nameLocation":"1650:10:134","nodeType":"VariableDeclaration","scope":86478,"src":"1642:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86475,"mutability":"mutable","name":"timestamp","nameLocation":"1678:9:134","nodeType":"VariableDeclaration","scope":86478,"src":"1670:17:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86474,"name":"uint128","nodeType":"ElementaryTypeName","src":"1670:7:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86477,"mutability":"mutable","name":"l2OutputIndex","nameLocation":"1705:13:134","nodeType":"VariableDeclaration","scope":86478,"src":"1697:21:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86476,"name":"uint128","nodeType":"ElementaryTypeName","src":"1697:7:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ProvenWithdrawal","nameLocation":"1615:16:134","scope":87104,"visibility":"public"},{"id":86482,"nodeType":"VariableDeclaration","src":"1777:45:134","nodes":[],"constant":true,"documentation":{"id":86479,"nodeType":"StructuredDocumentation","src":"1731:41:134","text":"@notice Version of the deposit event."},"mutability":"constant","name":"DEPOSIT_VERSION","nameLocation":"1803:15:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1777:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":86481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1821:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":86486,"nodeType":"VariableDeclaration","src":"1918:60:134","nodes":[],"constant":true,"documentation":{"id":86483,"nodeType":"StructuredDocumentation","src":"1829:84:134","text":"@notice The L2 gas limit set when eth is deposited using the receive() function."},"mutability":"constant","name":"RECEIVE_DEFAULT_GAS_LIMIT","nameLocation":"1943:25:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86484,"name":"uint64","nodeType":"ElementaryTypeName","src":"1918:6:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130305f303030","id":86485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1971:7:134","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"visibility":"internal"},{"id":86489,"nodeType":"VariableDeclaration","src":"2234:23:134","nodes":[],"constant":false,"documentation":{"id":86487,"nodeType":"StructuredDocumentation","src":"1985:244:134","text":"@notice Address of the L2 account which initiated a withdrawal in this transaction.\n If the of this variable is the default L2 sender address, then we are NOT inside of\n a call to finalizeWithdrawalTransaction."},"functionSelector":"9bf62d82","mutability":"mutable","name":"l2Sender","nameLocation":"2249:8:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86488,"name":"address","nodeType":"ElementaryTypeName","src":"2234:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":86494,"nodeType":"VariableDeclaration","src":"2348:52:134","nodes":[],"constant":false,"documentation":{"id":86490,"nodeType":"StructuredDocumentation","src":"2264:79:134","text":"@notice A list of withdrawal hashes which have been successfully finalized."},"functionSelector":"a14238e7","mutability":"mutable","name":"finalizedWithdrawals","nameLocation":"2380:20:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":86493,"keyType":{"id":86491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2356:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2348:24:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":86492,"name":"bool","nodeType":"ElementaryTypeName","src":"2367:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":86500,"nodeType":"VariableDeclaration","src":"2482:61:134","nodes":[],"constant":false,"documentation":{"id":86495,"nodeType":"StructuredDocumentation","src":"2407:70:134","text":"@notice A mapping of withdrawal hashes to `ProvenWithdrawal` data."},"functionSelector":"e965084c","mutability":"mutable","name":"provenWithdrawals","nameLocation":"2526:17:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$86478_storage_$","typeString":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)"},"typeName":{"id":86499,"keyType":{"id":86496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2490:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2482:36:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$86478_storage_$","typeString":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)"},"valueType":{"id":86498,"nodeType":"UserDefinedTypeName","pathNode":{"id":86497,"name":"ProvenWithdrawal","nodeType":"IdentifierPath","referencedDeclaration":86478,"src":"2501:16:134"},"referencedDeclaration":86478,"src":"2501:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal"}}},"visibility":"public"},{"id":86503,"nodeType":"VariableDeclaration","src":"2655:26:134","nodes":[],"constant":false,"documentation":{"id":86501,"nodeType":"StructuredDocumentation","src":"2550:100:134","text":"@custom:legacy\n @custom:spacer paused\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_53_0_1","nameLocation":"2668:13:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86502,"name":"bool","nodeType":"ElementaryTypeName","src":"2655:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":86507,"nodeType":"VariableDeclaration","src":"2739:40:134","nodes":[],"constant":false,"documentation":{"id":86504,"nodeType":"StructuredDocumentation","src":"2688:46:134","text":"@notice Contract of the Superchain Config."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"2763:16:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":86506,"nodeType":"UserDefinedTypeName","pathNode":{"id":86505,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"2739:16:134"},"referencedDeclaration":88793,"src":"2739:16:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":86511,"nodeType":"VariableDeclaration","src":"2867:30:134","nodes":[],"constant":false,"documentation":{"id":86508,"nodeType":"StructuredDocumentation","src":"2786:76:134","text":"@notice Contract of the L2OutputOracle.\n @custom:network-specific"},"functionSelector":"9b5f694a","mutability":"mutable","name":"l2Oracle","nameLocation":"2889:8:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"},"typeName":{"id":86510,"nodeType":"UserDefinedTypeName","pathNode":{"id":86509,"name":"L2OutputOracle","nodeType":"IdentifierPath","referencedDeclaration":86435,"src":"2867:14:134"},"referencedDeclaration":86435,"src":"2867:14:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"visibility":"public"},{"id":86515,"nodeType":"VariableDeclaration","src":"2983:32:134","nodes":[],"constant":false,"documentation":{"id":86512,"nodeType":"StructuredDocumentation","src":"2904:74:134","text":"@notice Contract of the SystemConfig.\n @custom:network-specific"},"functionSelector":"33d7e2bd","mutability":"mutable","name":"systemConfig","nameLocation":"3003:12:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},"typeName":{"id":86514,"nodeType":"UserDefinedTypeName","pathNode":{"id":86513,"name":"SystemConfig","nodeType":"IdentifierPath","referencedDeclaration":89607,"src":"2983:12:134"},"referencedDeclaration":89607,"src":"2983:12:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"visibility":"public"},{"id":86526,"nodeType":"EventDefinition","src":"3526:112:134","nodes":[],"anonymous":false,"documentation":{"id":86516,"nodeType":"StructuredDocumentation","src":"3022:499:134","text":"@notice Emitted when a transaction is deposited from L1 to L2.\n The parameters of this event are read by the rollup node and used to derive deposit\n transactions on L2.\n @param from Address that triggered the deposit transaction.\n @param to Address that the deposit transaction is directed to.\n @param version Version of this deposit transaction event.\n @param opaqueData ABI encoded deposit data to be parsed off-chain."},"eventSelector":"b3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32","name":"TransactionDeposited","nameLocation":"3532:20:134","parameters":{"id":86525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86518,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3569:4:134","nodeType":"VariableDeclaration","scope":86526,"src":"3553:20:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86517,"name":"address","nodeType":"ElementaryTypeName","src":"3553:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86520,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3591:2:134","nodeType":"VariableDeclaration","scope":86526,"src":"3575:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86519,"name":"address","nodeType":"ElementaryTypeName","src":"3575:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86522,"indexed":true,"mutability":"mutable","name":"version","nameLocation":"3611:7:134","nodeType":"VariableDeclaration","scope":86526,"src":"3595:23:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86521,"name":"uint256","nodeType":"ElementaryTypeName","src":"3595:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86524,"indexed":false,"mutability":"mutable","name":"opaqueData","nameLocation":"3626:10:134","nodeType":"VariableDeclaration","scope":86526,"src":"3620:16:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86523,"name":"bytes","nodeType":"ElementaryTypeName","src":"3620:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3552:85:134"}},{"id":86535,"nodeType":"EventDefinition","src":"3942:97:134","nodes":[],"anonymous":false,"documentation":{"id":86527,"nodeType":"StructuredDocumentation","src":"3644:293:134","text":"@notice Emitted when a withdrawal transaction is proven.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param from Address that triggered the withdrawal transaction.\n @param to Address that the withdrawal transaction is directed to."},"eventSelector":"67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62","name":"WithdrawalProven","nameLocation":"3948:16:134","parameters":{"id":86534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86529,"indexed":true,"mutability":"mutable","name":"withdrawalHash","nameLocation":"3981:14:134","nodeType":"VariableDeclaration","scope":86535,"src":"3965:30:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3965:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86531,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4013:4:134","nodeType":"VariableDeclaration","scope":86535,"src":"3997:20:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86530,"name":"address","nodeType":"ElementaryTypeName","src":"3997:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86533,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4035:2:134","nodeType":"VariableDeclaration","scope":86535,"src":"4019:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86532,"name":"address","nodeType":"ElementaryTypeName","src":"4019:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3964:74:134"}},{"id":86542,"nodeType":"EventDefinition","src":"4260:72:134","nodes":[],"anonymous":false,"documentation":{"id":86536,"nodeType":"StructuredDocumentation","src":"4045:210:134","text":"@notice Emitted when a withdrawal transaction is finalized.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param success Whether the withdrawal transaction was successful."},"eventSelector":"db5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b","name":"WithdrawalFinalized","nameLocation":"4266:19:134","parameters":{"id":86541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86538,"indexed":true,"mutability":"mutable","name":"withdrawalHash","nameLocation":"4302:14:134","nodeType":"VariableDeclaration","scope":86542,"src":"4286:30:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4286:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86540,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"4323:7:134","nodeType":"VariableDeclaration","scope":86542,"src":"4318:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86539,"name":"bool","nodeType":"ElementaryTypeName","src":"4318:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4285:46:134"}},{"id":86553,"nodeType":"ModifierDefinition","src":"4375:86:134","nodes":[],"body":{"id":86552,"nodeType":"Block","src":"4400:61:134","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":86545,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86651,"src":"4414:6:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":86546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4414:8:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86550,"nodeType":"IfStatement","src":"4410:33:134","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86547,"name":"CallPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103990,"src":"4431:10:134","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":86548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4431:12:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86549,"nodeType":"RevertStatement","src":"4424:19:134"}},{"id":86551,"nodeType":"PlaceholderStatement","src":"4453:1:134"}]},"documentation":{"id":86543,"nodeType":"StructuredDocumentation","src":"4338:32:134","text":"@notice Reverts when paused."},"name":"whenNotPaused","nameLocation":"4384:13:134","parameters":{"id":86544,"nodeType":"ParameterList","parameters":[],"src":"4397:2:134"},"virtual":false,"visibility":"internal"},{"id":86557,"nodeType":"VariableDeclaration","src":"4530:40:134","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":86554,"nodeType":"StructuredDocumentation","src":"4467:58:134","text":"@notice Semantic version.\n @custom:semver 2.6.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"4553:7:134","scope":87104,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":86555,"name":"string","nodeType":"ElementaryTypeName","src":"4530:6:134","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e362e30","id":86556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4563:7:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad12b1ea91991aacd9b7a7ba82f559ec1ebe6024b70cee19177a7d0d7932dda1","typeString":"literal_string \"2.6.0\""},"value":"2.6.0"},"visibility":"public"},{"id":86583,"nodeType":"FunctionDefinition","src":"4633:218:134","nodes":[],"body":{"id":86582,"nodeType":"Block","src":"4647:204:134","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":86565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4716:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4708:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86563,"name":"address","nodeType":"ElementaryTypeName","src":"4708:7:134","typeDescriptions":{}}},"id":86566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4708:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":86562,"name":"L2OutputOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86435,"src":"4693:14:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2OutputOracle_$86435_$","typeString":"type(contract L2OutputOracle)"}},"id":86567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4693:26:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},{"arguments":[{"arguments":[{"hexValue":"30","id":86571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4769:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4761:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86569,"name":"address","nodeType":"ElementaryTypeName","src":"4761:7:134","typeDescriptions":{}}},"id":86572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4761:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":86568,"name":"SystemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89607,"src":"4748:12:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemConfig_$89607_$","typeString":"type(contract SystemConfig)"}},"id":86573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4748:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},{"arguments":[{"arguments":[{"hexValue":"30","id":86577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4830:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4822:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86575,"name":"address","nodeType":"ElementaryTypeName","src":"4822:7:134","typeDescriptions":{}}},"id":86578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4822:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":86574,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"4805:16:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":86579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4805:28:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"},{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}],"id":86561,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86627,"src":"4657:10:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_L2OutputOracle_$86435_$_t_contract$_SystemConfig_$89607_$_t_contract$_SuperchainConfig_$88793_$returns$__$","typeString":"function (contract L2OutputOracle,contract SystemConfig,contract SuperchainConfig)"}},"id":86580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l2Oracle","_systemConfig","_superchainConfig"],"nodeType":"FunctionCall","src":"4657:187:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86581,"nodeType":"ExpressionStatement","src":"4657:187:134"}]},"documentation":{"id":86558,"nodeType":"StructuredDocumentation","src":"4577:51:134","text":"@notice Constructs the OptimismPortal contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86559,"nodeType":"ParameterList","parameters":[],"src":"4644:2:134"},"returnParameters":{"id":86560,"nodeType":"ParameterList","parameters":[],"src":"4647:0:134"},"scope":87104,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86627,"nodeType":"FunctionDefinition","src":"5069:435:134","nodes":[],"body":{"id":86626,"nodeType":"Block","src":"5248:256:134","nodes":[],"statements":[{"expression":{"id":86600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86598,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"5258:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86599,"name":"_l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86587,"src":"5269:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"src":"5258:20:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":86601,"nodeType":"ExpressionStatement","src":"5258:20:134"},{"expression":{"id":86604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86602,"name":"systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86515,"src":"5288:12:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86603,"name":"_systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86590,"src":"5303:13:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"src":"5288:28:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"id":86605,"nodeType":"ExpressionStatement","src":"5288:28:134"},{"expression":{"id":86608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86606,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86507,"src":"5326:16:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86607,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86593,"src":"5345:17:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"5326:36:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":86609,"nodeType":"ExpressionStatement","src":"5326:36:134"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86610,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86489,"src":"5376:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":86613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5396:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5388:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86611,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:134","typeDescriptions":{}}},"id":86614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5388:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5376:22:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86622,"nodeType":"IfStatement","src":"5372:91:134","trueBody":{"id":86621,"nodeType":"Block","src":"5400:63:134","statements":[{"expression":{"id":86619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86616,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86489,"src":"5414:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":86617,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"5425:9:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":86618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"5425:27:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5414:38:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86620,"nodeType":"ExpressionStatement","src":"5414:38:134"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86623,"name":"__ResourceMetering_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88580,"src":"5472:23:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":86624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5472:25:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86625,"nodeType":"ExpressionStatement","src":"5472:25:134"}]},"documentation":{"id":86584,"nodeType":"StructuredDocumentation","src":"4857:207:134","text":"@notice Initializer.\n @param _l2Oracle Contract of the L2OutputOracle.\n @param _systemConfig Contract of the SystemConfig.\n @param _superchainConfig Contract of the SuperchainConfig."},"functionSelector":"c0c53b8b","implemented":true,"kind":"function","modifiers":[{"id":86596,"kind":"modifierInvocation","modifierName":{"id":86595,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"5232:11:134"},"nodeType":"ModifierInvocation","src":"5232:11:134"}],"name":"initialize","nameLocation":"5078:10:134","parameters":{"id":86594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86587,"mutability":"mutable","name":"_l2Oracle","nameLocation":"5113:9:134","nodeType":"VariableDeclaration","scope":86627,"src":"5098:24:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"},"typeName":{"id":86586,"nodeType":"UserDefinedTypeName","pathNode":{"id":86585,"name":"L2OutputOracle","nodeType":"IdentifierPath","referencedDeclaration":86435,"src":"5098:14:134"},"referencedDeclaration":86435,"src":"5098:14:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"visibility":"internal"},{"constant":false,"id":86590,"mutability":"mutable","name":"_systemConfig","nameLocation":"5145:13:134","nodeType":"VariableDeclaration","scope":86627,"src":"5132:26:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},"typeName":{"id":86589,"nodeType":"UserDefinedTypeName","pathNode":{"id":86588,"name":"SystemConfig","nodeType":"IdentifierPath","referencedDeclaration":89607,"src":"5132:12:134"},"referencedDeclaration":89607,"src":"5132:12:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"visibility":"internal"},{"constant":false,"id":86593,"mutability":"mutable","name":"_superchainConfig","nameLocation":"5185:17:134","nodeType":"VariableDeclaration","scope":86627,"src":"5168:34:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":86592,"nodeType":"UserDefinedTypeName","pathNode":{"id":86591,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"5168:16:134"},"referencedDeclaration":88793,"src":"5168:16:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"}],"src":"5088:120:134"},"returnParameters":{"id":86597,"nodeType":"ParameterList","parameters":[],"src":"5248:0:134"},"scope":87104,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86638,"nodeType":"FunctionDefinition","src":"5757:101:134","nodes":[],"body":{"id":86637,"nodeType":"Block","src":"5807:51:134","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86633,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86507,"src":"5824:16:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":86634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"guardian","nodeType":"MemberAccess","referencedDeclaration":88693,"src":"5824:25:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":86635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5824:27:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":86632,"id":86636,"nodeType":"Return","src":"5817:34:134"}]},"documentation":{"id":86628,"nodeType":"StructuredDocumentation","src":"5510:242:134","text":"@notice Getter function for the address of the guardian.\n Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead.\n @return Address of the guardian.\n @custom:legacy"},"functionSelector":"452a9320","implemented":true,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"5766:8:134","parameters":{"id":86629,"nodeType":"ParameterList","parameters":[],"src":"5774:2:134"},"returnParameters":{"id":86632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86638,"src":"5798:7:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86630,"name":"address","nodeType":"ElementaryTypeName","src":"5798:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5797:9:134"},"scope":87104,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86651,"nodeType":"FunctionDefinition","src":"5981:105:134","nodes":[],"body":{"id":86650,"nodeType":"Block","src":"6034:52:134","nodes":[],"statements":[{"expression":{"id":86648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86644,"name":"paused_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86642,"src":"6044:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86645,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86507,"src":"6054:16:134","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":86646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"6054:23:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":86647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6054:25:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6044:35:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86649,"nodeType":"ExpressionStatement","src":"6044:35:134"}]},"documentation":{"id":86639,"nodeType":"StructuredDocumentation","src":"5864:112:134","text":"@notice Getter for the current paused status.\n @return paused_ Whether or not the contract is paused."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"5990:6:134","parameters":{"id":86640,"nodeType":"ParameterList","parameters":[],"src":"5996:2:134"},"returnParameters":{"id":86643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86642,"mutability":"mutable","name":"paused_","nameLocation":"6025:7:134","nodeType":"VariableDeclaration","scope":86651,"src":"6020:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86641,"name":"bool","nodeType":"ElementaryTypeName","src":"6020:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6019:14:134"},"scope":87104,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":86666,"nodeType":"FunctionDefinition","src":"6579:120:134","nodes":[],"body":{"id":86665,"nodeType":"Block","src":"6652:47:134","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":86663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":86661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86659,"name":"_byteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86654,"src":"6669:10:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":86660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6682:2:134","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6669:15:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3231303030","id":86662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6687:5:134","typeDescriptions":{"typeIdentifier":"t_rational_21000_by_1","typeString":"int_const 21000"},"value":"21000"},"src":"6669:23:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":86658,"id":86664,"nodeType":"Return","src":"6662:30:134"}]},"documentation":{"id":86652,"nodeType":"StructuredDocumentation","src":"6092:482:134","text":"@notice Computes the minimum gas limit for a deposit.\n The minimum gas limit linearly increases based on the size of the calldata.\n This is to prevent users from creating L2 resource usage without paying for it.\n This function can be used when interacting with the portal to ensure forwards\n compatibility.\n @param _byteCount Number of bytes in the calldata.\n @return The minimum gas limit for a deposit."},"functionSelector":"a35d99df","implemented":true,"kind":"function","modifiers":[],"name":"minimumGasLimit","nameLocation":"6588:15:134","parameters":{"id":86655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86654,"mutability":"mutable","name":"_byteCount","nameLocation":"6611:10:134","nodeType":"VariableDeclaration","scope":86666,"src":"6604:17:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86653,"name":"uint64","nodeType":"ElementaryTypeName","src":"6604:6:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6603:19:134"},"returnParameters":{"id":86658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86666,"src":"6644:6:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86656,"name":"uint64","nodeType":"ElementaryTypeName","src":"6644:6:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6643:8:134"},"scope":87104,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":86684,"nodeType":"FunctionDefinition","src":"7078:130:134","nodes":[],"body":{"id":86683,"nodeType":"Block","src":"7105:103:134","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":86671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7134:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7134:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7146:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"7146:9:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86675,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86486,"src":"7157:25:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"66616c7365","id":86676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7184:5:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"","id":86679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7197:2:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":86678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7191:5:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":86677,"name":"bytes","nodeType":"ElementaryTypeName","src":"7191:5:134","typeDescriptions":{}}},"id":86680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7191:9:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86670,"name":"depositTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87068,"src":"7115:18:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint64,bool,bytes memory)"}},"id":86681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7115:86:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86682,"nodeType":"ExpressionStatement","src":"7115:86:134"}]},"documentation":{"id":86667,"nodeType":"StructuredDocumentation","src":"6705:368:134","text":"@notice Accepts value so that users can send ETH directly to this contract and have the\n funds be deposited to their address on L2. This is intended as a convenience\n function for EOAs. Contracts should call the depositTransaction() function directly\n otherwise any deposited funds will be lost due to address aliasing."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86668,"nodeType":"ParameterList","parameters":[],"src":"7085:2:134"},"returnParameters":{"id":86669,"nodeType":"ParameterList","parameters":[],"src":"7105:0:134"},"scope":87104,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":86689,"nodeType":"FunctionDefinition","src":"7422:77:134","nodes":[],"body":{"id":86688,"nodeType":"Block","src":"7460:39:134","nodes":[],"statements":[]},"documentation":{"id":86685,"nodeType":"StructuredDocumentation","src":"7214:203:134","text":"@notice Accepts ETH value without triggering a deposit to L2.\n This function mainly exists for the sake of the migration between the legacy\n Optimism system and Bedrock."},"functionSelector":"8b4c40b0","implemented":true,"kind":"function","modifiers":[],"name":"donateETH","nameLocation":"7431:9:134","parameters":{"id":86686,"nodeType":"ParameterList","parameters":[],"src":"7440:2:134"},"returnParameters":{"id":86687,"nodeType":"ParameterList","parameters":[],"src":"7460:0:134"},"scope":87104,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":86702,"nodeType":"FunctionDefinition","src":"7748:152:134","nodes":[],"body":{"id":86701,"nodeType":"Block","src":"7847:53:134","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86697,"name":"systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86515,"src":"7864:12:134","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"id":86698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resourceConfig","nodeType":"MemberAccess","referencedDeclaration":89527,"src":"7864:27:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_ResourceConfig_$88258_memory_ptr_$","typeString":"function () view external returns (struct ResourceMetering.ResourceConfig memory)"}},"id":86699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7864:29:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"functionReturnParameters":86696,"id":86700,"nodeType":"Return","src":"7857:36:134"}]},"baseFunctions":[88555],"documentation":{"id":86690,"nodeType":"StructuredDocumentation","src":"7505:238:134","text":"@notice Getter for the resource config.\n Used internally by the ResourceMetering contract.\n The SystemConfig is the source of truth for the resource config.\n @return ResourceMetering ResourceConfig"},"implemented":true,"kind":"function","modifiers":[],"name":"_resourceConfig","nameLocation":"7757:15:134","overrides":{"id":86692,"nodeType":"OverrideSpecifier","overrides":[],"src":"7789:8:134"},"parameters":{"id":86691,"nodeType":"ParameterList","parameters":[],"src":"7772:2:134"},"returnParameters":{"id":86696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86702,"src":"7807:38:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":86694,"nodeType":"UserDefinedTypeName","pathNode":{"id":86693,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":88258,"src":"7807:31:134"},"referencedDeclaration":88258,"src":"7807:31:134","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"7806:40:134"},"scope":87104,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86834,"nodeType":"FunctionDefinition","src":"8288:3825:134","nodes":[],"body":{"id":86833,"nodeType":"Block","src":"8553:3560:134","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86720,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86706,"src":"8798:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"8798:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86724,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8820:4:134","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":86723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8812:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86722,"name":"address","nodeType":"ElementaryTypeName","src":"8812:7:134","typeDescriptions":{}}},"id":86725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8812:13:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8798:27:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e64206d6573736167657320746f2074686520706f7274616c20636f6e7472616374","id":86727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8827:65:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8","typeString":"literal_string \"OptimismPortal: you cannot send messages to the portal contract\""},"value":"OptimismPortal: you cannot send messages to the portal contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8","typeString":"literal_string \"OptimismPortal: you cannot send messages to the portal contract\""}],"id":86719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8790:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8790:103:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86729,"nodeType":"ExpressionStatement","src":"8790:103:134"},{"assignments":[86731],"declarations":[{"constant":false,"id":86731,"mutability":"mutable","name":"outputRoot","nameLocation":"9078:10:134","nodeType":"VariableDeclaration","scope":86833,"src":"9070:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9070:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86737,"initialValue":{"expression":{"arguments":[{"id":86734,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86708,"src":"9112:14:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86732,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"9091:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":86733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getL2Output","nodeType":"MemberAccess","referencedDeclaration":86275,"src":"9091:20:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$104307_memory_ptr_$","typeString":"function (uint256) view external returns (struct Types.OutputProposal memory)"}},"id":86735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9091:36:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"id":86736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"outputRoot","nodeType":"MemberAccess","referencedDeclaration":104302,"src":"9091:47:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9070:68:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86739,"name":"outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86731,"src":"9258:10:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":86742,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86711,"src":"9300:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}],"expression":{"id":86740,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"9272:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":86741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashOutputRootProof","nodeType":"MemberAccess","referencedDeclaration":103935,"src":"9272:27:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutputRootProof_$104316_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.OutputRootProof memory) pure returns (bytes32)"}},"id":86743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9272:45:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9258:59:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c6964206f757470757420726f6f742070726f6f66","id":86745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9319:43:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996","typeString":"literal_string \"OptimismPortal: invalid output root proof\""},"value":"OptimismPortal: invalid output root proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996","typeString":"literal_string \"OptimismPortal: invalid output root proof\""}],"id":86738,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9237:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9237:135:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86747,"nodeType":"ExpressionStatement","src":"9237:135:134"},{"assignments":[86749],"declarations":[{"constant":false,"id":86749,"mutability":"mutable","name":"withdrawalHash","nameLocation":"9491:14:134","nodeType":"VariableDeclaration","scope":86833,"src":"9483:22:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9483:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86754,"initialValue":{"arguments":[{"id":86752,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86706,"src":"9531:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":86750,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"9508:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":86751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"9508:22:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":86753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9508:27:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9483:52:134"},{"assignments":[86757],"declarations":[{"constant":false,"id":86757,"mutability":"mutable","name":"provenWithdrawal","nameLocation":"9569:16:134","nodeType":"VariableDeclaration","scope":86833,"src":"9545:40:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal"},"typeName":{"id":86756,"nodeType":"UserDefinedTypeName","pathNode":{"id":86755,"name":"ProvenWithdrawal","nodeType":"IdentifierPath","referencedDeclaration":86478,"src":"9545:16:134"},"referencedDeclaration":86478,"src":"9545:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal"}},"visibility":"internal"}],"id":86761,"initialValue":{"baseExpression":{"id":86758,"name":"provenWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86500,"src":"9588:17:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$86478_storage_$","typeString":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"}},"id":86760,"indexExpression":{"id":86759,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86749,"src":"9606:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9588:33:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage","typeString":"struct OptimismPortal.ProvenWithdrawal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9545:76:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":86766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86763,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86757,"src":"10175:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86475,"src":"10175:26:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":86765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10205:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10175:31:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":86769,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86757,"src":"10247:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2OutputIndex","nodeType":"MemberAccess","referencedDeclaration":86477,"src":"10247:30:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":86767,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"10226:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":86768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getL2Output","nodeType":"MemberAccess","referencedDeclaration":86275,"src":"10226:20:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$104307_memory_ptr_$","typeString":"function (uint256) view external returns (struct Types.OutputProposal memory)"}},"id":86771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10226:52:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"id":86772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"outputRoot","nodeType":"MemberAccess","referencedDeclaration":104302,"src":"10226:63:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":86773,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86757,"src":"10293:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"outputRoot","nodeType":"MemberAccess","referencedDeclaration":86473,"src":"10293:27:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10226:94:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10175:145:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c20686173682068617320616c7265616479206265656e2070726f76656e","id":86777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10334:57:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0","typeString":"literal_string \"OptimismPortal: withdrawal hash has already been proven\""},"value":"OptimismPortal: withdrawal hash has already been proven"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0","typeString":"literal_string \"OptimismPortal: withdrawal hash has already been proven\""}],"id":86762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10154:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10154:247:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86779,"nodeType":"ExpressionStatement","src":"10154:247:134"},{"assignments":[86781],"declarations":[{"constant":false,"id":86781,"mutability":"mutable","name":"storageKey","nameLocation":"10645:10:134","nodeType":"VariableDeclaration","scope":86833,"src":"10637:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10637:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86792,"initialValue":{"arguments":[{"arguments":[{"id":86785,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86749,"src":"10709:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":86788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10749:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10741:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":86786,"name":"uint256","nodeType":"ElementaryTypeName","src":"10741:7:134","typeDescriptions":{}}},"id":86789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10741:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86783,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10681:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"10681:10:134","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10681:147:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86782,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10658:9:134","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10658:180:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10637:201:134"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":86798,"name":"storageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86781,"src":"11264:10:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":86796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11253:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"11253:10:134","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11253:22:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"01","id":86800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"11301:7:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":86801,"name":"_withdrawalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86714,"src":"11334:16:134","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":86802,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86711,"src":"11375:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}},"id":86803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"messagePasserStorageRoot","nodeType":"MemberAccess","referencedDeclaration":104313,"src":"11375:41:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":86794,"name":"SecureMerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106033,"src":"11191:16:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SecureMerkleTrie_$106033_$","typeString":"type(library SecureMerkleTrie)"}},"id":86795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyInclusionProof","nodeType":"MemberAccess","referencedDeclaration":105985,"src":"11191:37:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory,bytes memory[] memory,bytes32) pure returns (bool)"}},"id":86804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_key","_value","_proof","_root"],"nodeType":"FunctionCall","src":"11191:240:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c6964207769746864726177616c20696e636c7573696f6e2070726f6f66","id":86805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11445:52:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9","typeString":"literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""},"value":"OptimismPortal: invalid withdrawal inclusion proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9","typeString":"literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""}],"id":86793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11170:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11170:337:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86807,"nodeType":"ExpressionStatement","src":"11170:337:134"},{"expression":{"id":86823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":86808,"name":"provenWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86500,"src":"11789:17:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$86478_storage_$","typeString":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"}},"id":86810,"indexExpression":{"id":86809,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86749,"src":"11807:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11789:33:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage","typeString":"struct OptimismPortal.ProvenWithdrawal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":86812,"name":"outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86731,"src":"11868:10:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":86815,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11911:5:134","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11911:15:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11903:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":86813,"name":"uint128","nodeType":"ElementaryTypeName","src":"11903:7:134","typeDescriptions":{}}},"id":86817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11903:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":86820,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86708,"src":"11964:14:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11956:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":86818,"name":"uint128","nodeType":"ElementaryTypeName","src":"11956:7:134","typeDescriptions":{}}},"id":86821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11956:23:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86811,"name":"ProvenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86478,"src":"11825:16:134","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProvenWithdrawal_$86478_storage_ptr_$","typeString":"type(struct OptimismPortal.ProvenWithdrawal storage pointer)"}},"id":86822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["outputRoot","timestamp","l2OutputIndex"],"nodeType":"FunctionCall","src":"11825:165:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"src":"11789:201:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage","typeString":"struct OptimismPortal.ProvenWithdrawal storage ref"}},"id":86824,"nodeType":"ExpressionStatement","src":"11789:201:134"},{"eventCall":{"arguments":[{"id":86826,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86749,"src":"12067:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86827,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86706,"src":"12083:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":104339,"src":"12083:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86829,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86706,"src":"12095:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"12095:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":86825,"name":"WithdrawalProven","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86535,"src":"12050:16:134","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":86831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12050:56:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86832,"nodeType":"EmitStatement","src":"12045:61:134"}]},"documentation":{"id":86703,"nodeType":"StructuredDocumentation","src":"7906:377:134","text":"@notice Proves a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize.\n @param _l2OutputIndex L2 output index to prove against.\n @param _outputRootProof Inclusion proof of the L2ToL1MessagePasser contract's storage root.\n @param _withdrawalProof Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."},"functionSelector":"4870496f","implemented":true,"kind":"function","modifiers":[{"id":86717,"kind":"modifierInvocation","modifierName":{"id":86716,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":86553,"src":"8535:13:134"},"nodeType":"ModifierInvocation","src":"8535:13:134"}],"name":"proveWithdrawalTransaction","nameLocation":"8297:26:134","parameters":{"id":86715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86706,"mutability":"mutable","name":"_tx","nameLocation":"8368:3:134","nodeType":"VariableDeclaration","scope":86834,"src":"8333:38:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":86705,"nodeType":"UserDefinedTypeName","pathNode":{"id":86704,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":104348,"src":"8333:27:134"},"referencedDeclaration":104348,"src":"8333:27:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":86708,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"8389:14:134","nodeType":"VariableDeclaration","scope":86834,"src":"8381:22:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86707,"name":"uint256","nodeType":"ElementaryTypeName","src":"8381:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86711,"mutability":"mutable","name":"_outputRootProof","nameLocation":"8444:16:134","nodeType":"VariableDeclaration","scope":86834,"src":"8413:47:134","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":86710,"nodeType":"UserDefinedTypeName","pathNode":{"id":86709,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":104316,"src":"8413:21:134"},"referencedDeclaration":104316,"src":"8413:21:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":86714,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"8487:16:134","nodeType":"VariableDeclaration","scope":86834,"src":"8470:33:134","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86712,"name":"bytes","nodeType":"ElementaryTypeName","src":"8470:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86713,"nodeType":"ArrayTypeName","src":"8470:7:134","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8323:186:134"},"returnParameters":{"id":86718,"nodeType":"ParameterList","parameters":[],"src":"8553:0:134"},"scope":87104,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86978,"nodeType":"FunctionDefinition","src":"12226:4818:134","nodes":[],"body":{"id":86977,"nodeType":"Block","src":"12328:4716:134","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86844,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86489,"src":"12594:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86845,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"12606:9:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":86846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"12606:27:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12594:39:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a2063616e206f6e6c792074726967676572206f6e65207769746864726177616c20706572207472616e73616374696f6e","id":86848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12635:65:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b","typeString":"literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""},"value":"OptimismPortal: can only trigger one withdrawal per transaction"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b","typeString":"literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""}],"id":86843,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12573:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12573:137:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86850,"nodeType":"ExpressionStatement","src":"12573:137:134"},{"assignments":[86852],"declarations":[{"constant":false,"id":86852,"mutability":"mutable","name":"withdrawalHash","nameLocation":"12801:14:134","nodeType":"VariableDeclaration","scope":86977,"src":"12793:22:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12793:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86857,"initialValue":{"arguments":[{"id":86855,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"12841:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":86853,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"12818:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":86854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"12818:22:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":86856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12818:27:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12793:52:134"},{"assignments":[86860],"declarations":[{"constant":false,"id":86860,"mutability":"mutable","name":"provenWithdrawal","nameLocation":"12879:16:134","nodeType":"VariableDeclaration","scope":86977,"src":"12855:40:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal"},"typeName":{"id":86859,"nodeType":"UserDefinedTypeName","pathNode":{"id":86858,"name":"ProvenWithdrawal","nodeType":"IdentifierPath","referencedDeclaration":86478,"src":"12855:16:134"},"referencedDeclaration":86478,"src":"12855:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal"}},"visibility":"internal"}],"id":86864,"initialValue":{"baseExpression":{"id":86861,"name":"provenWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86500,"src":"12898:17:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$86478_storage_$","typeString":"mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"}},"id":86863,"indexExpression":{"id":86862,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86852,"src":"12916:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12898:33:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_storage","typeString":"struct OptimismPortal.ProvenWithdrawal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12855:76:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":86869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86866,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86860,"src":"13181:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86475,"src":"13181:26:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":86868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13211:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13181:31:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e6f74206265656e2070726f76656e20796574","id":86870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13214:52:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610","typeString":"literal_string \"OptimismPortal: withdrawal has not been proven yet\""},"value":"OptimismPortal: withdrawal has not been proven yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610","typeString":"literal_string \"OptimismPortal: withdrawal has not been proven yet\""}],"id":86865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13173:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13173:94:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86872,"nodeType":"ExpressionStatement","src":"13173:94:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86874,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86860,"src":"13554:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86475,"src":"13554:26:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86876,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"13584:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":86877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"startingTimestamp","nodeType":"MemberAccess","referencedDeclaration":85942,"src":"13584:26:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":86878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13584:28:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13554:58:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657374616d70206c657373207468616e204c32204f7261636c65207374617274696e672074696d657374616d70","id":86880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13626:77:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd","typeString":"literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\""},"value":"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd","typeString":"literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\""}],"id":86873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13533:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13533:180:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86882,"nodeType":"ExpressionStatement","src":"13533:180:134"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":86885,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86860,"src":"14132:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86475,"src":"14132:26:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86884,"name":"_isFinalizationPeriodElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87103,"src":"14103:28:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":86887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14103:56:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a2070726f76656e207769746864726177616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564","id":86888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14173:71:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70","typeString":"literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\""},"value":"OptimismPortal: proven withdrawal finalization period has not elapsed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70","typeString":"literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\""}],"id":86883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14082:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14082:172:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86890,"nodeType":"ExpressionStatement","src":"14082:172:134"},{"assignments":[86895],"declarations":[{"constant":false,"id":86895,"mutability":"mutable","name":"proposal","nameLocation":"14453:8:134","nodeType":"VariableDeclaration","scope":86977,"src":"14425:36:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal"},"typeName":{"id":86894,"nodeType":"UserDefinedTypeName","pathNode":{"id":86893,"name":"Types.OutputProposal","nodeType":"IdentifierPath","referencedDeclaration":104307,"src":"14425:20:134"},"referencedDeclaration":104307,"src":"14425:20:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_storage_ptr","typeString":"struct Types.OutputProposal"}},"visibility":"internal"}],"id":86901,"initialValue":{"arguments":[{"expression":{"id":86898,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86860,"src":"14485:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"l2OutputIndex","nodeType":"MemberAccess","referencedDeclaration":86477,"src":"14485:30:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":86896,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"14464:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":86897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getL2Output","nodeType":"MemberAccess","referencedDeclaration":86275,"src":"14464:20:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$104307_memory_ptr_$","typeString":"function (uint256) view external returns (struct Types.OutputProposal memory)"}},"id":86900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14464:52:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"14425:91:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86903,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86895,"src":"14804:8:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"id":86904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"outputRoot","nodeType":"MemberAccess","referencedDeclaration":104302,"src":"14804:19:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86905,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86860,"src":"14827:16:134","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$86478_memory_ptr","typeString":"struct OptimismPortal.ProvenWithdrawal memory"}},"id":86906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"outputRoot","nodeType":"MemberAccess","referencedDeclaration":86473,"src":"14827:27:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14804:50:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f76656e206973206e6f74207468652073616d652061732063757272656e74206f757470757420726f6f74","id":86908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14868:75:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280","typeString":"literal_string \"OptimismPortal: output root proven is not the same as current output root\""},"value":"OptimismPortal: output root proven is not the same as current output root"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280","typeString":"literal_string \"OptimismPortal: output root proven is not the same as current output root\""}],"id":86902,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14783:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14783:170:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86910,"nodeType":"ExpressionStatement","src":"14783:170:134"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":86913,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86895,"src":"15081:8:134","typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"id":86914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":104304,"src":"15081:18:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86912,"name":"_isFinalizationPeriodElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87103,"src":"15052:28:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":86915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15052:48:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564","id":86916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15114:69:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74","typeString":"literal_string \"OptimismPortal: output proposal finalization period has not elapsed\""},"value":"OptimismPortal: output proposal finalization period has not elapsed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74","typeString":"literal_string \"OptimismPortal: output proposal finalization period has not elapsed\""}],"id":86911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15031:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15031:162:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86918,"nodeType":"ExpressionStatement","src":"15031:162:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":86920,"name":"finalizedWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86494,"src":"15309:20:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":86922,"indexExpression":{"id":86921,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86852,"src":"15330:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15309:36:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":86923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15349:5:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15309:45:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c2068617320616c7265616479206265656e2066696e616c697a6564","id":86925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15356:55:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485","typeString":"literal_string \"OptimismPortal: withdrawal has already been finalized\""},"value":"OptimismPortal: withdrawal has already been finalized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485","typeString":"literal_string \"OptimismPortal: withdrawal has already been finalized\""}],"id":86919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15301:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":86926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15301:111:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86927,"nodeType":"ExpressionStatement","src":"15301:111:134"},{"expression":{"id":86932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":86928,"name":"finalizedWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86494,"src":"15492:20:134","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":86930,"indexExpression":{"id":86929,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86852,"src":"15513:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15492:36:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15531:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15492:43:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86933,"nodeType":"ExpressionStatement","src":"15492:43:134"},{"expression":{"id":86937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86934,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86489,"src":"15629:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":86935,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"15640:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":104339,"src":"15640:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15629:21:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86938,"nodeType":"ExpressionStatement","src":"15629:21:134"},{"assignments":[86940],"declarations":[{"constant":false,"id":86940,"mutability":"mutable","name":"success","nameLocation":"16275:7:134","nodeType":"VariableDeclaration","scope":86977,"src":"16270:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86939,"name":"bool","nodeType":"ElementaryTypeName","src":"16270:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86952,"initialValue":{"arguments":[{"expression":{"id":86943,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"16309:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"16309:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86945,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"16321:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":104345,"src":"16321:12:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":86947,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"16335:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":104343,"src":"16335:9:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":86949,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"16346:3:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":86950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":104347,"src":"16346:8:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":86941,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104213,"src":"16285:8:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCall_$104213_$","typeString":"type(library SafeCall)"}},"id":86942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"callWithMinGas","nodeType":"MemberAccess","referencedDeclaration":104212,"src":"16285:23:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bool)"}},"id":86951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16285:70:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16270:85:134"},{"expression":{"id":86956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86953,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86489,"src":"16423:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":86954,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"16434:9:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":86955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"16434:27:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16423:38:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86957,"nodeType":"ExpressionStatement","src":"16423:38:134"},{"eventCall":{"arguments":[{"id":86959,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86852,"src":"16640:14:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86960,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86940,"src":"16656:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":86958,"name":"WithdrawalFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86542,"src":"16620:19:134","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":86961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16620:44:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86962,"nodeType":"EmitStatement","src":"16615:49:134"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86963,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86940,"src":"16928:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":86964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16939:5:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"16928:16:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86966,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"16948:2:134","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":86967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"16948:9:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86968,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"16961:9:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":86969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ESTIMATION_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":103054,"src":"16961:28:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16948:41:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16928:61:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86976,"nodeType":"IfStatement","src":"16924:114:134","trueBody":{"id":86975,"nodeType":"Block","src":"16991:47:134","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86972,"name":"GasEstimation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103993,"src":"17012:13:134","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":86973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17012:15:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86974,"nodeType":"RevertStatement","src":"17005:22:134"}]}}]},"documentation":{"id":86835,"nodeType":"StructuredDocumentation","src":"12119:102:134","text":"@notice Finalizes a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize."},"functionSelector":"8c3152e9","implemented":true,"kind":"function","modifiers":[{"id":86841,"kind":"modifierInvocation","modifierName":{"id":86840,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":86553,"src":"12314:13:134"},"nodeType":"ModifierInvocation","src":"12314:13:134"}],"name":"finalizeWithdrawalTransaction","nameLocation":"12235:29:134","parameters":{"id":86839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86838,"mutability":"mutable","name":"_tx","nameLocation":"12300:3:134","nodeType":"VariableDeclaration","scope":86978,"src":"12265:38:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":86837,"nodeType":"UserDefinedTypeName","pathNode":{"id":86836,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":104348,"src":"12265:27:134"},"referencedDeclaration":104348,"src":"12265:27:134","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"12264:40:134"},"returnParameters":{"id":86842,"nodeType":"ParameterList","parameters":[],"src":"12328:0:134"},"scope":87104,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87068,"nodeType":"FunctionDefinition","src":"17774:1855:134","nodes":[],"body":{"id":87067,"nodeType":"Block","src":"17995:1634:134","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86995,"name":"_isCreation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86987,"src":"18134:11:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86996,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86981,"src":"18149:3:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":86999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18164:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18156:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86997,"name":"address","nodeType":"ElementaryTypeName","src":"18156:7:134","typeDescriptions":{}}},"id":87000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18156:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18149:17:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18134:32:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87006,"nodeType":"IfStatement","src":"18130:56:134","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87003,"name":"BadTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103969,"src":"18175:9:134","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18175:11:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87005,"nodeType":"RevertStatement","src":"18168:18:134"}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87007,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86985,"src":"18338:9:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":87011,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86989,"src":"18373:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":87012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"18373:12:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18366:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":87009,"name":"uint64","nodeType":"ElementaryTypeName","src":"18366:6:134","typeDescriptions":{}}},"id":87013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18366:20:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":87008,"name":"minimumGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86666,"src":"18350:15:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_uint64_$","typeString":"function (uint64) pure returns (uint64)"}},"id":87014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18350:37:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18338:49:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87019,"nodeType":"IfStatement","src":"18334:77:134","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87016,"name":"SmallGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103975,"src":"18396:13:134","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18396:15:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87018,"nodeType":"RevertStatement","src":"18389:22:134"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87020,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86989,"src":"18786:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":87021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"18786:12:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3132305f303030","id":87022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18801:7:134","typeDescriptions":{"typeIdentifier":"t_rational_120000_by_1","typeString":"int_const 120000"},"value":"120_000"},"src":"18786:22:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87027,"nodeType":"IfStatement","src":"18782:50:134","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87024,"name":"LargeCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103972,"src":"18817:13:134","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18817:15:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87026,"nodeType":"RevertStatement","src":"18810:22:134"}},{"assignments":[87029],"declarations":[{"constant":false,"id":87029,"mutability":"mutable","name":"from","nameLocation":"18931:4:134","nodeType":"VariableDeclaration","scope":87067,"src":"18923:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87028,"name":"address","nodeType":"ElementaryTypeName","src":"18923:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":87032,"initialValue":{"expression":{"id":87030,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18938:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18938:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18923:25:134"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18962:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18962:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":87035,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"18976:2:134","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":87036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"18976:9:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18962:23:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87047,"nodeType":"IfStatement","src":"18958:108:134","trueBody":{"id":87046,"nodeType":"Block","src":"18987:79:134","statements":[{"expression":{"id":87044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87038,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87029,"src":"19001:4:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":87041,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19044:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19044:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":87039,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"19008:18:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressAliasHelper_$111913_$","typeString":"type(library AddressAliasHelper)"}},"id":87040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"applyL1ToL2Alias","nodeType":"MemberAccess","referencedDeclaration":111890,"src":"19008:35:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_address_$","typeString":"function (address) pure returns (address)"}},"id":87043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19008:47:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19001:54:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87045,"nodeType":"ExpressionStatement","src":"19001:54:134"}]}},{"assignments":[87049],"declarations":[{"constant":false,"id":87049,"mutability":"mutable","name":"opaqueData","nameLocation":"19336:10:134","nodeType":"VariableDeclaration","scope":87067,"src":"19323:23:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":87048,"name":"bytes","nodeType":"ElementaryTypeName","src":"19323:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":87059,"initialValue":{"arguments":[{"expression":{"id":87052,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19366:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"19366:9:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87054,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86983,"src":"19377:6:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87055,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86985,"src":"19385:9:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":87056,"name":"_isCreation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86987,"src":"19396:11:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":87057,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86989,"src":"19409:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":87050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19349:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":87051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"19349:16:134","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":87058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19349:66:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19323:92:134"},{"eventCall":{"arguments":[{"id":87061,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87029,"src":"19583:4:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87062,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86981,"src":"19589:3:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87063,"name":"DEPOSIT_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86482,"src":"19594:15:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87064,"name":"opaqueData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87049,"src":"19611:10:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":87060,"name":"TransactionDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86526,"src":"19562:20:134","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":87065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19562:60:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87066,"nodeType":"EmitStatement","src":"19557:65:134"}]},"documentation":{"id":86979,"nodeType":"StructuredDocumentation","src":"17050:719:134","text":"@notice Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in\n deriving deposit transactions. Note that if a deposit is made by a contract, its\n address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider\n using the CrossDomainMessenger contracts for a simpler developer experience.\n @param _to Target address on L2.\n @param _value ETH value to send to the recipient.\n @param _gasLimit Amount of L2 gas to purchase by burning gas on L1.\n @param _isCreation Whether or not the transaction is a contract creation.\n @param _data Data to trigger the recipient with."},"functionSelector":"e9e05c42","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":86992,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86985,"src":"17980:9:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":86993,"kind":"modifierInvocation","modifierName":{"id":86991,"name":"metered","nodeType":"IdentifierPath","referencedDeclaration":88284,"src":"17972:7:134"},"nodeType":"ModifierInvocation","src":"17972:18:134"}],"name":"depositTransaction","nameLocation":"17783:18:134","parameters":{"id":86990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86981,"mutability":"mutable","name":"_to","nameLocation":"17819:3:134","nodeType":"VariableDeclaration","scope":87068,"src":"17811:11:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86980,"name":"address","nodeType":"ElementaryTypeName","src":"17811:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86983,"mutability":"mutable","name":"_value","nameLocation":"17840:6:134","nodeType":"VariableDeclaration","scope":87068,"src":"17832:14:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86982,"name":"uint256","nodeType":"ElementaryTypeName","src":"17832:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86985,"mutability":"mutable","name":"_gasLimit","nameLocation":"17863:9:134","nodeType":"VariableDeclaration","scope":87068,"src":"17856:16:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86984,"name":"uint64","nodeType":"ElementaryTypeName","src":"17856:6:134","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":86987,"mutability":"mutable","name":"_isCreation","nameLocation":"17887:11:134","nodeType":"VariableDeclaration","scope":87068,"src":"17882:16:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86986,"name":"bool","nodeType":"ElementaryTypeName","src":"17882:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86989,"mutability":"mutable","name":"_data","nameLocation":"17921:5:134","nodeType":"VariableDeclaration","scope":87068,"src":"17908:18:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86988,"name":"bytes","nodeType":"ElementaryTypeName","src":"17908:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17801:131:134"},"returnParameters":{"id":86994,"nodeType":"ParameterList","parameters":[],"src":"17995:0:134"},"scope":87104,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":87085,"nodeType":"FunctionDefinition","src":"19926:180:134","nodes":[],"body":{"id":87084,"nodeType":"Block","src":"20006:100:134","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":87079,"name":"_l2OutputIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87071,"src":"20073:14:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":87077,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"20052:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":87078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getL2Output","nodeType":"MemberAccess","referencedDeclaration":86275,"src":"20052:20:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$104307_memory_ptr_$","typeString":"function (uint256) view external returns (struct Types.OutputProposal memory)"}},"id":87080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20052:36:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutputProposal_$104307_memory_ptr","typeString":"struct Types.OutputProposal memory"}},"id":87081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":104304,"src":"20052:46:134","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":87076,"name":"_isFinalizationPeriodElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87103,"src":"20023:28:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":87082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20023:76:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87075,"id":87083,"nodeType":"Return","src":"20016:83:134"}]},"documentation":{"id":87069,"nodeType":"StructuredDocumentation","src":"19635:286:134","text":"@notice Determine if a given output is finalized.\n Reverts if the call to l2Oracle.getL2Output reverts.\n Returns a boolean otherwise.\n @param _l2OutputIndex Index of the L2 output to check.\n @return Whether or not the output is finalized."},"functionSelector":"6dbffb78","implemented":true,"kind":"function","modifiers":[],"name":"isOutputFinalized","nameLocation":"19935:17:134","parameters":{"id":87072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87071,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"19961:14:134","nodeType":"VariableDeclaration","scope":87085,"src":"19953:22:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87070,"name":"uint256","nodeType":"ElementaryTypeName","src":"19953:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19952:24:134"},"returnParameters":{"id":87075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87085,"src":"20000:4:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87073,"name":"bool","nodeType":"ElementaryTypeName","src":"20000:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19999:6:134"},"scope":87104,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":87103,"nodeType":"FunctionDefinition","src":"20359:180:134","nodes":[],"body":{"id":87102,"nodeType":"Block","src":"20446:93:134","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87093,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20463:5:134","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20463:15:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87095,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87088,"src":"20481:10:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87096,"name":"l2Oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86511,"src":"20494:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2OutputOracle_$86435","typeString":"contract L2OutputOracle"}},"id":87097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"FINALIZATION_PERIOD_SECONDS","nodeType":"MemberAccess","referencedDeclaration":86121,"src":"20494:36:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":87098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20494:38:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20481:51:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20463:69:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87092,"id":87101,"nodeType":"Return","src":"20456:76:134"}]},"documentation":{"id":87086,"nodeType":"StructuredDocumentation","src":"20112:242:134","text":"@notice Determines whether the finalization period has elapsed with respect to\n the provided block timestamp.\n @param _timestamp Timestamp to check.\n @return Whether or not the finalization period has elapsed."},"implemented":true,"kind":"function","modifiers":[],"name":"_isFinalizationPeriodElapsed","nameLocation":"20368:28:134","parameters":{"id":87089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87088,"mutability":"mutable","name":"_timestamp","nameLocation":"20405:10:134","nodeType":"VariableDeclaration","scope":87103,"src":"20397:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87087,"name":"uint256","nodeType":"ElementaryTypeName","src":"20397:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20396:20:134"},"returnParameters":{"id":87092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87103,"src":"20440:4:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87090,"name":"bool","nodeType":"ElementaryTypeName","src":"20440:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20439:6:134"},"scope":87104,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":86466,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":49678,"src":"1267:13:134"},"id":86467,"nodeType":"InheritanceSpecifier","src":"1267:13:134"},{"baseName":{"id":86468,"name":"ResourceMetering","nodeType":"IdentifierPath","referencedDeclaration":88581,"src":"1282:16:134"},"id":86469,"nodeType":"InheritanceSpecifier","src":"1282:16:134"},{"baseName":{"id":86470,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1300:7:134"},"id":86471,"nodeType":"InheritanceSpecifier","src":"1300:7:134"}],"canonicalName":"OptimismPortal","contractDependencies":[],"contractKind":"contract","documentation":{"id":86465,"nodeType":"StructuredDocumentation","src":"902:338:134","text":"@custom:proxied\n @title OptimismPortal\n @notice The OptimismPortal is a low-level contract responsible for passing messages between L1\n and L2. Messages sent directly to the OptimismPortal have no form of replayability.\n Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."},"fullyImplemented":true,"linearizedBaseContracts":[87104,109417,88581,49678],"name":"OptimismPortal","nameLocation":"1249:14:134","scope":87105,"usedErrors":[88238,103969,103972,103975,103990,103993]}],"license":"MIT"},"id":134} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/OptimismPortal2.json b/packages/sdk/src/forge-artifacts/OptimismPortal2.json new file mode 100644 index 000000000000..962c442e0c67 --- /dev/null +++ b/packages/sdk/src/forge-artifacts/OptimismPortal2.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_proofMaturityDelaySeconds","type":"uint256","internalType":"uint256"},{"name":"_disputeGameFinalityDelaySeconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"blacklistDisputeGame","inputs":[{"name":"_disputeGame","type":"address","internalType":"contract IDisputeGame"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkWithdrawal","inputs":[{"name":"_withdrawalHash","type":"bytes32","internalType":"bytes32"},{"name":"_proofSubmitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"depositTransaction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_gasLimit","type":"uint64","internalType":"uint64"},{"name":"_isCreation","type":"bool","internalType":"bool"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"disputeGameBlacklist","inputs":[{"name":"","type":"address","internalType":"contract IDisputeGame"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"disputeGameFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract DisputeGameFactory"}],"stateMutability":"view"},{"type":"function","name":"disputeGameFinalityDelaySeconds","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"donateETH","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeWithdrawalTransactionExternalProof","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_proofSubmitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizedWithdrawals","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_disputeGameFactory","type":"address","internalType":"contract DisputeGameFactory"},{"name":"_systemConfig","type":"address","internalType":"contract SystemConfig"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"},{"name":"_initialRespectedGameType","type":"uint32","internalType":"GameType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2Sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"minimumGasLimit","inputs":[{"name":"_byteCount","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"numProofSubmitters","inputs":[{"name":"_withdrawalHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"params","inputs":[],"outputs":[{"name":"prevBaseFee","type":"uint128","internalType":"uint128"},{"name":"prevBoughtGas","type":"uint64","internalType":"uint64"},{"name":"prevBlockNum","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proofMaturityDelaySeconds","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proofSubmitters","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_disputeGameIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"provenWithdrawals","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"disputeGameProxy","type":"address","internalType":"contract IDisputeGame"},{"name":"timestamp","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"respectedGameType","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"respectedGameTypeUpdatedAt","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setRespectedGameType","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"systemConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SystemConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"TransactionDeposited","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"version","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"opaqueData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"WithdrawalFinalized","inputs":[{"name":"withdrawalHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"WithdrawalProven","inputs":[{"name":"withdrawalHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BadTarget","inputs":[]},{"type":"error","name":"CallPaused","inputs":[]},{"type":"error","name":"GasEstimation","inputs":[]},{"type":"error","name":"LargeCalldata","inputs":[]},{"type":"error","name":"OutOfGas","inputs":[]},{"type":"error","name":"SmallGasLimit","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]}],"bytecode":{"object":"0x60c06040523480156200001157600080fd5b5060405162005cbd38038062005cbd8339810160408190526200003491620002f2565b608082905260a08190526200004d600080808062000055565b505062000317565b600054610100900460ff1615808015620000765750600054600160ff909116105b80620000a6575062000093306200022460201b620020d41760201c565b158015620000a6575060005460ff166001145b6200010f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000133576000805461ff0019166101001790555b603880546001600160a01b03199081166001600160a01b03888116919091179092556037805490911686831617905560358054610100600160a81b0319166101008684160217905560325416620001cc576032805461dead6001600160a01b0319909116179055603b80546001600160601b031916640100000000426001600160401b03160263ffffffff19161763ffffffff84161790555b620001d662000233565b80156200021d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b03163b151590565b600054610100900460ff16620002a05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000106565b600154600160c01b90046001600160401b0316600003620002f05760408051606081018252633b9aca0080825260006020830152436001600160401b031691909201819052600160c01b02176001555b565b600080604083850312156200030657600080fd5b505080516020909101519092909150565b60805160a0516159726200034b600039600081816104c30152611a4601526000818161063a015261168401526159726000f3fe6080604052600436106101b05760003560e01c80637fc48504116100ec578063a35d99df1161008a578063bf653a5c11610064578063bf653a5c1461062b578063cff0ab961461065e578063e9e05c42146106ff578063f2b4e6171461071257600080fd5b8063a35d99df14610544578063a3860f4814610564578063bb2c727e1461058457600080fd5b80638e819e54116100c65780638e819e5414610494578063952b2797146104b45780639bf62d82146104e7578063a14238e71461051457600080fd5b80637fc48504146104545780638b4c40b0146101d55780638c3152e91461047457600080fd5b80634870496f1161015957806354fd4d501161013357806354fd4d50146103a95780635c975abb146103ff57806371c1566e146104145780637d6be8dc1461043457600080fd5b80634870496f1461030c5780634fd0434c1461032c578063513747ab1461036e57600080fd5b806343ca1c501161018a57806343ca1c5014610297578063452a9320146102b757806345884d32146102cc57600080fd5b806333d7e2bd146101dc57806335e80ab3146102335780633c9f397c1461026557600080fd5b366101d7576101d53334620186a060006040518060200160405280600081525061073f565b005b600080fd5b3480156101e857600080fd5b506037546102099073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561023f57600080fd5b5060355461020990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561027157600080fd5b50603b546102829063ffffffff1681565b60405163ffffffff909116815260200161022a565b3480156102a357600080fd5b506101d56102b2366004614e15565b6108fc565b3480156102c357600080fd5b50610209610b5a565b3480156102d857600080fd5b506102fc6102e7366004614e67565b603a6020526000908152604090205460ff1681565b604051901515815260200161022a565b34801561031857600080fd5b506101d5610327366004614e84565b610bf2565b34801561033857600080fd5b50603b5461035590640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161022a565b34801561037a57600080fd5b5061039b610389366004614f60565b6000908152603c602052604090205490565b60405190815260200161022a565b3480156103b557600080fd5b506103f26040518060400160405280600581526020017f332e382e3000000000000000000000000000000000000000000000000000000081525081565b60405161022a9190614fef565b34801561040b57600080fd5b506102fc6112d6565b34801561042057600080fd5b506101d561042f366004615002565b611369565b34801561044057600080fd5b506101d561044f366004614e67565b611bfa565b34801561046057600080fd5b506101d561046f366004615039565b611cb5565b34801561048057600080fd5b506101d561048f366004615056565b611d6f565b3480156104a057600080fd5b506101d56104af366004615093565b611dbb565b3480156104c057600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061039b565b3480156104f357600080fd5b506032546102099073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b506102fc61052f366004614f60565b60336020526000908152604090205460ff1681565b34801561055057600080fd5b5061035561055f366004615105565b612070565b34801561057057600080fd5b5061020961057f366004615122565b61208f565b34801561059057600080fd5b506105f661059f366004615002565b603960209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301520161022a565b34801561063757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061039b565b34801561066a57600080fd5b506001546106c6906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161022a565b6101d561070d366004615152565b61073f565b34801561071e57600080fd5b506038546102099073ffffffffffffffffffffffffffffffffffffffff1681565b8260005a9050838015610767575073ffffffffffffffffffffffffffffffffffffffff871615155b1561079e576040517f13496fda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107a88351612070565b67ffffffffffffffff168567ffffffffffffffff1610156107f5576040517f4929b80800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c083511115610833576040517f73052b0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33328114610854575033731111000000000000000000000000000000001111015b6000348888888860405160200161086f9594939291906151d1565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32846040516108df9190614fef565b60405180910390a450506108f382826120f0565b50505050505050565b6109046112d6565b1561093b576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60325473ffffffffffffffffffffffffffffffffffffffff1661dead146109e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e0060648201526084015b60405180910390fd5b60006109f4836123c7565b9050610a008183611369565b600081815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908501516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558401516080850151606086015160a0870151610aa293929190612414565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b90610b0790841515815260200190565b60405180910390a280158015610b1d5750326001145b15610b54576040517feeae4ed300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190615236565b905090565b610bfa6112d6565b15610c31576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610cf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e74726163740060648201526084016109e0565b6038546040517fbb8aa1fc00000000000000000000000000000000000000000000000000000000815260048101869052600091829173ffffffffffffffffffffffffffffffffffffffff9091169063bb8aa1fc90602401606060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190615253565b925050915060008173ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906152a0565b603b5490915063ffffffff848116911614610e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797060448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016109e0565b610eb2610ead368890038801886152b9565b612472565b8114610f40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f66000000000000000000000000000000000000000000000060648201526084016109e0565b6000610f4b896123c7565b905060018373ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe919061534e565b6002811115610fcf57610fcf61531f565b0361105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d506f7274616c3a2063616e6e6f742070726f76652061676160448201527f696e737420696e76616c696420646973707574652067616d657300000000000060648201526084016109e0565b60408051602081018390526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830181905292506111259101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f010000000000000000000000000000000000000000000000000000000000000060208301529061111b898b61536f565b8b604001356124b1565b6111b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f66000000000000000000000000000060648201526084016109e0565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff808716825267ffffffffffffffff4281166020808501918252600088815260398252868120338252825286812095518654935190941674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931693851693909317919091179093558d840151928e01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4506000908152603c602090815260408220805460018101825590835291200180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611345573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed91906153f3565b600082815260396020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152818552603a90935292205490919060ff161561146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4f7074696d69736d506f7274616c3a20646973707574652067616d652068617360448201527f206265656e20626c61636b6c697374656400000000000000000000000000000060648201526084016109e0565b816020015167ffffffffffffffff16600003611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2062792070726f6f66207375626d6974746560648201527f7220616464726573732079657400000000000000000000000000000000000000608482015260a4016109e0565b60006115b38273ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190615410565b67ffffffffffffffff1690565b90508067ffffffffffffffff16836020015167ffffffffffffffff1611611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e20646973707574652067616d65206372656160648201527f74696f6e2074696d657374616d70000000000000000000000000000000000000608482015260a4016109e0565b7f0000000000000000000000000000000000000000000000000000000000000000836020015167ffffffffffffffff16426116bd919061545c565b1161174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c20686173206e6f74206d61747572656420796574000000000000000000000060648201526084016109e0565b60028273ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bb919061534e565b60028111156117cc576117cc61531f565b14611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f686173206e6f74206265656e2076616c6964617465640000000000000000000060648201526084016109e0565b603b5463ffffffff1663ffffffff166118e38373ffffffffffffffffffffffffffffffffffffffff1663bbdc02db6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190615473565b63ffffffff1690565b63ffffffff1614611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797060448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016109e0565b603b5467ffffffffffffffff64010000000090910481169082161015611a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a20646973707574652067616d652063726560448201527f61746564206265666f7265207265737065637465642067616d6520747970652060648201527f7761732075706461746564000000000000000000000000000000000000000000608482015260a4016109e0565b7f0000000000000000000000000000000000000000000000000000000000000000611ab38373ffffffffffffffffffffffffffffffffffffffff166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d6000803e3d6000fd5b611ac79067ffffffffffffffff164261545c565b11611b54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f696e206169722d6761700000000000000000000000000000000000000000000060648201526084016109e0565b60008581526033602052604090205460ff1615611bf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a6564000000000000000000000060648201526084016109e0565b5050505050565b611c02610b5a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c66576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152603a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b611cbd610b5a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d21576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603b805463ffffffff929092167fffffffffffffffffffffffffffffffffffffffff000000000000000000000000909216919091176401000000004267ffffffffffffffff1602179055565b565b611d776112d6565b15611dae576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611db881336108fc565b50565b600054610100900460ff1615808015611ddb5750600054600160ff909116105b80611df55750303b158015611df5575060005460ff166001145b611e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611edf57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8881169190911790925560378054909116868316179055603580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101008684160217905560325416611fff576032805461dead7fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055603b80547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166401000000004267ffffffffffffffff16027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161763ffffffff84161790555b6120076124d5565b8015611bf357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600061207d826010615490565b612089906152086154c0565b92915050565b603c60205281600052604060002081815481106120ab57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090612126907801000000000000000000000000000000000000000000000000900467ffffffffffffffff164361545c565b905060006121326125e8565b90506000816020015160ff16826000015163ffffffff16612153919061551b565b9050821561228a5760015460009061218a908390700100000000000000000000000000000000900467ffffffffffffffff16615583565b90506000836040015160ff16836121a191906155f7565b6001546121c19084906fffffffffffffffffffffffffffffffff166155f7565b6121cb919061551b565b60015490915060009061221c906121f59084906fffffffffffffffffffffffffffffffff166156b3565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166126a9565b9050600186111561224b576122486121f582876040015160ff1660018a612243919061545c565b6126c8565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906122bd908490700100000000000000000000000000000000900467ffffffffffffffff166154c0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16131561234a576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612376906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816615727565b9050600061238848633b9aca0061271d565b6123929083615764565b905060005a6123a1908861545c565b9050808211156123bd576123bd6123b8828461545c565b612734565b5050505050505050565b80516020808301516040808501516060860151608087015160a088015193516000976123f7979096959101615778565b604051602081830303815290604052805190602001209050919050565b6000806000612424866000612762565b90508061245a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600081600001518260200151836040015184606001516040516020016123f7949392919093845260208401929092526040830152606082015260800190565b6000806124bd86612780565b90506124cb818686866127b2565b9695505050505050565b600054610100900460ff1661256c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e0565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003611d6d5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260375483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa158015612685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed91906157e5565b60006126be6126b885856127e2565b836127f2565b90505b9392505050565b6000670de0b6b3a76400006127096126e0858361551b565b6126f290670de0b6b3a7640000615583565b61270485670de0b6b3a76400006155f7565b612801565b61271390866155f7565b6126be919061551b565b60008183101561272d57816126c1565b5090919050565b6000805a90505b825a612747908361545c565b101561275d57612756826158a1565b915061273b565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6060818051906020012060405160200161279c91815260200190565b6040516020818303038152906040529050919050565b60006127d9846127c3878686612832565b8051602091820120825192909101919091201490565b95945050505050565b60008183121561272d57816126c1565b600081831261272d57816126c1565b60006126c1670de0b6b3a764000083612819866132b0565b61282391906155f7565b61282d919061551b565b6134f4565b6060600084511161289f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b6579000000000000000000000060448201526064016109e0565b60006128aa84613733565b905060006128b78661381f565b90506000846040516020016128ce91815260200190565b60405160208183030381529060405290506000805b8451811015613227576000858281518110612900576129006158d9565b60200260200101519050845183111561299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e67746800000000000000000000000000000000000060648201526084016109e0565b82600003612a5457805180516020918201206040516129e9926129c392910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016109e0565b612bab565b805151602011612b0a5780518051602091820120604051612a7e926129c392910190815260200190565b612a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c20686173680000000000000000000000000000000000000000000000000060648201526084016109e0565b805184516020808701919091208251919092012014612bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f652068617368000000000000000000000000000000000000000000000000000060648201526084016109e0565b612bb760106001615908565b81602001515103612d935784518303612d2b57612bf18160200151601081518110612be457612be46158d9565b6020026020010151613882565b96506000875111612c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e636829000000000060648201526084016109e0565b60018651612c92919061545c565b8214612d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e63682900000000000060648201526084016109e0565b5050505050506126c1565b6000858481518110612d3f57612d3f6158d9565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110612d6a57612d6a6158d9565b60200260200101519050612d7d816139e2565b9550612d8a600186615908565b94505050613214565b60028160200151510361318c576000612dab82613a07565b9050600081600081518110612dc257612dc26158d9565b016020015160f81c90506000612dd9600283615920565b612de4906002615942565b90506000612df5848360ff16613a2b565b90506000612e038a89613a2b565b90506000612e118383613a61565b905080835114612ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b657900000000000060648201526084016109e0565b60ff851660021480612eb8575060ff85166003145b156130a75780825114612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e64657200000060648201526084016109e0565b612f678760200151600181518110612be457612be46158d9565b9c5060008d5111612ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c656166290000000000000060648201526084016109e0565b60018c51613008919061545c565b8814613096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c65616629000000000000000060648201526084016109e0565b5050505050505050505050506126c1565b60ff851615806130ba575060ff85166001145b156130f9576130e687602001516001815181106130d9576130d96158d9565b60200260200101516139e2565b99506130f2818a615908565b9850613181565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e20707265666978000000000000000000000000000060648201526084016109e0565b505050505050613214565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f646500000000000000000000000000000000000000000000000060648201526084016109e0565b508061321f816158a1565b9150506128e3565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e747300000000000000000000000000000000000000000000000000000060648201526084016109e0565b600080821361331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016109e0565b6000606061332884613b15565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361352557506000919050565b680755bf798b4a1bf1e58212613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f57000000000000000000000000000000000000000060448201526064016109e0565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561375157613751614c38565b60405190808252806020026020018201604052801561379657816020015b604080518082019091526060808252602082015281526020019060019003908161376f5790505b50915060005b818110156138185760405180604001604052808583815181106137c1576137c16158d9565b602002602001015181526020016137f08684815181106137e3576137e36158d9565b6020026020010151613beb565b815250838281518110613805576138056158d9565b602090810291909101015260010161379c565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613877578060011b82018184015160001a8060041c8253600f811660018301535050600101613849565b509295945050505050565b6060600080600061389285613bfe565b9194509250905060008160018111156138ad576138ad61531f565b1461393a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d0000000000000060648201526084016109e0565b6139448284615908565b8551146139d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e64657200000000000000000000000060648201526084016109e0565b6127d98560200151848461466b565b606060208260000151106139fe576139f982613882565b612089565b612089826146ff565b6060612089613a268360200151600081518110612be457612be46158d9565b61381f565b606082518210613a4a5750604080516020810190915260008152612089565b6126c18383848651613a5c919061545c565b614715565b6000808251845110613a74578251613a77565b83515b90505b8082108015613afe5750828281518110613a9657613a966158d9565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613ad557613ad56158d9565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613b0e57816001019150613a7a565b5092915050565b6000808211613b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016109e0565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060612089613bf9836148ed565b6149d6565b600080600080846000015111613cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a4016109e0565b6020840151805160001a607f8111613ce1576000600160009450945094505050614664565b60b78111613eef576000613cf660808361545c565b905080876000015111613db1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a4016109e0565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613e2a57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613edc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a4016109e0565b5060019550935060009250614664915050565b60bf811161423d576000613f0460b78361545c565b905080876000015111613fbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a4016109e0565b60018301517fff0000000000000000000000000000000000000000000000000000000000000016600081900361409d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a4016109e0565b600184015160088302610100031c60378111614161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a4016109e0565b61416b8184615908565b895111614220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a4016109e0565b61422b836001615908565b97509550600094506146649350505050565b60f7811161431e57600061425260c08361545c565b90508087600001511161430d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a4016109e0565b600195509350849250614664915050565b600061432b60f78361545c565b9050808760000151116143e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a4016109e0565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036144c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a4016109e0565b600184015160088302610100031c60378111614588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a4016109e0565b6145928184615908565b895111614647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a4016109e0565b614652836001615908565b97509550600194506146649350505050565b9193909250565b60608167ffffffffffffffff81111561468657614686614c38565b6040519080825280601f01601f1916602001820160405280156146b0576020820181803683370190505b50905081156126c15760006146c58486615908565b90506020820160005b848110156146e65782810151828201526020016146ce565b848111156146f5576000858301525b5050509392505050565b606061208982602001516000846000015161466b565b60608182601f011015614784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016109e0565b8282840110156147f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016109e0565b8183018451101561485d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016109e0565b60608215801561487c57604051915060008252602082016040526148e4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156148b557805183526020928301920161489d565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116149b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a4016109e0565b50604080518082019091528151815260209182019181019190915290565b606060008060006149e685613bfe565b919450925090506001816001811115614a0157614a0161531f565b14614a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d000000000000000060648201526084016109e0565b8451614a9a8385615908565b14614b27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e646572000000000000000000000000000060648201526084016109e0565b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614b3e5790505093506000835b8651811015614c2c57600080614bb16040518060400160405280858c60000151614b95919061545c565b8152602001858c60200151614baa9190615908565b9052613bfe565b509150915060405180604001604052808383614bcd9190615908565b8152602001848b60200151614be29190615908565b815250888581518110614bf757614bf76158d9565b6020908102919091010152614c0d600185615908565b9350614c198183615908565b614c239084615908565b92505050614b6b565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614cae57614cae614c38565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611db857600080fd5b600082601f830112614ce957600080fd5b813567ffffffffffffffff811115614d0357614d03614c38565b614d3460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614c67565b818152846020838601011115614d4957600080fd5b816020850160208301376000918101602001919091529392505050565b600060c08284031215614d7857600080fd5b60405160c0810167ffffffffffffffff8282108183111715614d9c57614d9c614c38565b816040528293508435835260208501359150614db782614cb6565b81602084015260408501359150614dcd82614cb6565b816040840152606085013560608401526080850135608084015260a0850135915080821115614dfb57600080fd5b50614e0885828601614cd8565b60a0830152505092915050565b60008060408385031215614e2857600080fd5b823567ffffffffffffffff811115614e3f57600080fd5b614e4b85828601614d66565b9250506020830135614e5c81614cb6565b809150509250929050565b600060208284031215614e7957600080fd5b81356126c181614cb6565b600080600080600085870360e0811215614e9d57600080fd5b863567ffffffffffffffff80821115614eb557600080fd5b614ec18a838b01614d66565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614efa57600080fd5b60408901955060c0890135925080831115614f1457600080fd5b828901925089601f840112614f2857600080fd5b8235915080821115614f3957600080fd5b508860208260051b8401011115614f4f57600080fd5b959894975092955050506020019190565b600060208284031215614f7257600080fd5b5035919050565b60005b83811015614f94578181015183820152602001614f7c565b83811115610b545750506000910152565b60008151808452614fbd816020860160208601614f79565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126c16020830184614fa5565b6000806040838503121561501557600080fd5b823591506020830135614e5c81614cb6565b63ffffffff81168114611db857600080fd5b60006020828403121561504b57600080fd5b81356126c181615027565b60006020828403121561506857600080fd5b813567ffffffffffffffff81111561507f57600080fd5b61508b84828501614d66565b949350505050565b600080600080608085870312156150a957600080fd5b84356150b481614cb6565b935060208501356150c481614cb6565b925060408501356150d481614cb6565b915060608501356150e481615027565b939692955090935050565b67ffffffffffffffff81168114611db857600080fd5b60006020828403121561511757600080fd5b81356126c1816150ef565b6000806040838503121561513557600080fd5b50508035926020909101359150565b8015158114611db857600080fd5b600080600080600060a0868803121561516a57600080fd5b853561517581614cb6565b945060208601359350604086013561518c816150ef565b9250606086013561519c81615144565b9150608086013567ffffffffffffffff8111156151b857600080fd5b6151c488828901614cd8565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251615225816049850160208701614f79565b919091016049019695505050505050565b60006020828403121561524857600080fd5b81516126c181614cb6565b60008060006060848603121561526857600080fd5b835161527381615027565b6020850151909350615284816150ef565b604085015190925061529581614cb6565b809150509250925092565b6000602082840312156152b257600080fd5b5051919050565b6000608082840312156152cb57600080fd5b6040516080810181811067ffffffffffffffff821117156152ee576152ee614c38565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561536057600080fd5b8151600381106126c157600080fd5b600067ffffffffffffffff8084111561538a5761538a614c38565b8360051b602061539b818301614c67565b8681529185019181810190368411156153b357600080fd5b865b848110156153e7578035868111156153cd5760008081fd5b6153d936828b01614cd8565b8452509183019183016153b5565b50979650505050505050565b60006020828403121561540557600080fd5b81516126c181615144565b60006020828403121561542257600080fd5b81516126c1816150ef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561546e5761546e61542d565b500390565b60006020828403121561548557600080fd5b81516126c181615027565b600067ffffffffffffffff808316818516818304811182151516156154b7576154b761542d565b02949350505050565b600067ffffffffffffffff8083168185168083038211156154e3576154e361542d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261552a5761552a6154ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561557e5761557e61542d565b500590565b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156155bd576155bd61542d565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156155f1576155f161542d565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156156385761563861542d565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156156735761567361542d565b6000871292508782058712848416161561568f5761568f61542d565b878505871281841616156156a5576156a561542d565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156156ed576156ed61542d565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156157215761572161542d565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561575f5761575f61542d565b500290565b600082615773576157736154ec565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526157c360c0830184614fa5565b98975050505050505050565b805160ff811681146157e057600080fd5b919050565b600060c082840312156157f757600080fd5b60405160c0810181811067ffffffffffffffff8211171561581a5761581a614c38565b604052825161582881615027565b8152615836602084016157cf565b6020820152615847604084016157cf565b6040820152606083015161585a81615027565b6060820152608083015161586d81615027565b608082015260a08301516fffffffffffffffffffffffffffffffff8116811461589557600080fd5b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036158d2576158d261542d565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561591b5761591b61542d565b500190565b600060ff831680615933576159336154ec565b8060ff84160691505092915050565b600060ff821660ff84168082101561595c5761595c61542d565b9003939250505056fea164736f6c634300080f000a","sourceMap":"1310:23607:135:-:0;;;5985:513;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6085:57;;;;6152:70;;;;6233:258;6306:1;;;;6233:10;:258::i;:::-;5985:513;;1310:23607;;6730:971;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;466:2:357;3146:190:43;;;448:21:357;505:2;485:18;;;478:30;544:34;524:18;;;517:62;-1:-1:-1;;;595:18:357;;;588:44;649:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;6977:18:135::1;:40:::0;;-1:-1:-1;;;;;;6977:40:135;;::::1;-1:-1:-1::0;;;;;6977:40:135;;::::1;::::0;;;::::1;::::0;;;7027:12:::1;:28:::0;;;;::::1;::::0;;::::1;;::::0;;7065:16:::1;:36:::0;;-1:-1:-1;;;;;;7065:36:135::1;6977:40;7065:36:::0;;::::1;;;::::0;;7249:8:::1;::::0;::::1;7245:414;;7287:8;:38:::0;;1338:42:192::1;-1:-1:-1::0;;;;;;7287:38:135;;::::1;;::::0;;7485:26:::1;:52:::0;;-1:-1:-1;;;;;;7603:45:135;7485:52;7521:15:::1;-1:-1:-1::0;;;;;7485:52:135::1;;-1:-1:-1::0;;7603:45:135;;::::1;::::0;::::1;;::::0;;7245:414:::1;7669:25;:23;:25::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;831:36:357;;3531:14:43;;819:2:357;804:18;3531:14:43;;;;;;;3457:99;3090:472;6730:971:135;;;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;8340:234:137:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;1080:2:357;4880:69:43;;;1062:21:357;1119:2;1099:18;;;1092:30;1158:34;1138:18;;;1131:62;-1:-1:-1;;;1209:18:357;;;1202:41;1260:19;;4880:69:43;878:407:357;4880:69:43;8415:6:137::1;:19:::0;-1:-1:-1;;;8415:19:137;::::1;-1:-1:-1::0;;;;;8415:19:137::1;;:24:::0;8411:157:::1;;8464:93;::::0;;::::1;::::0;::::1;::::0;;8494:6:::1;8464:93:::0;;;-1:-1:-1;8464:93:137::1;::::0;::::1;::::0;8541:12:::1;-1:-1:-1::0;;;;;8464:93:137::1;::::0;;;;;;;-1:-1:-1;;;8455:102:137::1;;:6;:102:::0;8411:157:::1;8340:234::o:0;14:245:357:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;-1:-1:-1;;193:16:357;;249:2;234:18;;;228:25;193:16;;228:25;;-1:-1:-1;14:245:357:o;878:407::-;1310:23607:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101b05760003560e01c80637fc48504116100ec578063a35d99df1161008a578063bf653a5c11610064578063bf653a5c1461062b578063cff0ab961461065e578063e9e05c42146106ff578063f2b4e6171461071257600080fd5b8063a35d99df14610544578063a3860f4814610564578063bb2c727e1461058457600080fd5b80638e819e54116100c65780638e819e5414610494578063952b2797146104b45780639bf62d82146104e7578063a14238e71461051457600080fd5b80637fc48504146104545780638b4c40b0146101d55780638c3152e91461047457600080fd5b80634870496f1161015957806354fd4d501161013357806354fd4d50146103a95780635c975abb146103ff57806371c1566e146104145780637d6be8dc1461043457600080fd5b80634870496f1461030c5780634fd0434c1461032c578063513747ab1461036e57600080fd5b806343ca1c501161018a57806343ca1c5014610297578063452a9320146102b757806345884d32146102cc57600080fd5b806333d7e2bd146101dc57806335e80ab3146102335780633c9f397c1461026557600080fd5b366101d7576101d53334620186a060006040518060200160405280600081525061073f565b005b600080fd5b3480156101e857600080fd5b506037546102099073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561023f57600080fd5b5060355461020990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561027157600080fd5b50603b546102829063ffffffff1681565b60405163ffffffff909116815260200161022a565b3480156102a357600080fd5b506101d56102b2366004614e15565b6108fc565b3480156102c357600080fd5b50610209610b5a565b3480156102d857600080fd5b506102fc6102e7366004614e67565b603a6020526000908152604090205460ff1681565b604051901515815260200161022a565b34801561031857600080fd5b506101d5610327366004614e84565b610bf2565b34801561033857600080fd5b50603b5461035590640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161022a565b34801561037a57600080fd5b5061039b610389366004614f60565b6000908152603c602052604090205490565b60405190815260200161022a565b3480156103b557600080fd5b506103f26040518060400160405280600581526020017f332e382e3000000000000000000000000000000000000000000000000000000081525081565b60405161022a9190614fef565b34801561040b57600080fd5b506102fc6112d6565b34801561042057600080fd5b506101d561042f366004615002565b611369565b34801561044057600080fd5b506101d561044f366004614e67565b611bfa565b34801561046057600080fd5b506101d561046f366004615039565b611cb5565b34801561048057600080fd5b506101d561048f366004615056565b611d6f565b3480156104a057600080fd5b506101d56104af366004615093565b611dbb565b3480156104c057600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061039b565b3480156104f357600080fd5b506032546102099073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b506102fc61052f366004614f60565b60336020526000908152604090205460ff1681565b34801561055057600080fd5b5061035561055f366004615105565b612070565b34801561057057600080fd5b5061020961057f366004615122565b61208f565b34801561059057600080fd5b506105f661059f366004615002565b603960209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301520161022a565b34801561063757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061039b565b34801561066a57600080fd5b506001546106c6906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161022a565b6101d561070d366004615152565b61073f565b34801561071e57600080fd5b506038546102099073ffffffffffffffffffffffffffffffffffffffff1681565b8260005a9050838015610767575073ffffffffffffffffffffffffffffffffffffffff871615155b1561079e576040517f13496fda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107a88351612070565b67ffffffffffffffff168567ffffffffffffffff1610156107f5576040517f4929b80800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c083511115610833576040517f73052b0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33328114610854575033731111000000000000000000000000000000001111015b6000348888888860405160200161086f9594939291906151d1565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32846040516108df9190614fef565b60405180910390a450506108f382826120f0565b50505050505050565b6109046112d6565b1561093b576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60325473ffffffffffffffffffffffffffffffffffffffff1661dead146109e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e0060648201526084015b60405180910390fd5b60006109f4836123c7565b9050610a008183611369565b600081815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908501516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558401516080850151606086015160a0870151610aa293929190612414565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b90610b0790841515815260200190565b60405180910390a280158015610b1d5750326001145b15610b54576040517feeae4ed300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190615236565b905090565b610bfa6112d6565b15610c31576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610cf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e74726163740060648201526084016109e0565b6038546040517fbb8aa1fc00000000000000000000000000000000000000000000000000000000815260048101869052600091829173ffffffffffffffffffffffffffffffffffffffff9091169063bb8aa1fc90602401606060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190615253565b925050915060008173ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906152a0565b603b5490915063ffffffff848116911614610e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797060448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016109e0565b610eb2610ead368890038801886152b9565b612472565b8114610f40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f66000000000000000000000000000000000000000000000060648201526084016109e0565b6000610f4b896123c7565b905060018373ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe919061534e565b6002811115610fcf57610fcf61531f565b0361105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d506f7274616c3a2063616e6e6f742070726f76652061676160448201527f696e737420696e76616c696420646973707574652067616d657300000000000060648201526084016109e0565b60408051602081018390526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830181905292506111259101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f010000000000000000000000000000000000000000000000000000000000000060208301529061111b898b61536f565b8b604001356124b1565b6111b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f66000000000000000000000000000060648201526084016109e0565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff808716825267ffffffffffffffff4281166020808501918252600088815260398252868120338252825286812095518654935190941674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931693851693909317919091179093558d840151928e01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4506000908152603c602090815260408220805460018101825590835291200180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611345573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed91906153f3565b600082815260396020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152818552603a90935292205490919060ff161561146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4f7074696d69736d506f7274616c3a20646973707574652067616d652068617360448201527f206265656e20626c61636b6c697374656400000000000000000000000000000060648201526084016109e0565b816020015167ffffffffffffffff16600003611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2062792070726f6f66207375626d6974746560648201527f7220616464726573732079657400000000000000000000000000000000000000608482015260a4016109e0565b60006115b38273ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190615410565b67ffffffffffffffff1690565b90508067ffffffffffffffff16836020015167ffffffffffffffff1611611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e20646973707574652067616d65206372656160648201527f74696f6e2074696d657374616d70000000000000000000000000000000000000608482015260a4016109e0565b7f0000000000000000000000000000000000000000000000000000000000000000836020015167ffffffffffffffff16426116bd919061545c565b1161174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c20686173206e6f74206d61747572656420796574000000000000000000000060648201526084016109e0565b60028273ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bb919061534e565b60028111156117cc576117cc61531f565b14611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f686173206e6f74206265656e2076616c6964617465640000000000000000000060648201526084016109e0565b603b5463ffffffff1663ffffffff166118e38373ffffffffffffffffffffffffffffffffffffffff1663bbdc02db6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190615473565b63ffffffff1690565b63ffffffff1614611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797060448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016109e0565b603b5467ffffffffffffffff64010000000090910481169082161015611a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a20646973707574652067616d652063726560448201527f61746564206265666f7265207265737065637465642067616d6520747970652060648201527f7761732075706461746564000000000000000000000000000000000000000000608482015260a4016109e0565b7f0000000000000000000000000000000000000000000000000000000000000000611ab38373ffffffffffffffffffffffffffffffffffffffff166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d6000803e3d6000fd5b611ac79067ffffffffffffffff164261545c565b11611b54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f696e206169722d6761700000000000000000000000000000000000000000000060648201526084016109e0565b60008581526033602052604090205460ff1615611bf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a6564000000000000000000000060648201526084016109e0565b5050505050565b611c02610b5a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c66576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152603a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b611cbd610b5a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d21576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603b805463ffffffff929092167fffffffffffffffffffffffffffffffffffffffff000000000000000000000000909216919091176401000000004267ffffffffffffffff1602179055565b565b611d776112d6565b15611dae576040517ff480973e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611db881336108fc565b50565b600054610100900460ff1615808015611ddb5750600054600160ff909116105b80611df55750303b158015611df5575060005460ff166001145b611e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611edf57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8881169190911790925560378054909116868316179055603580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101008684160217905560325416611fff576032805461dead7fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055603b80547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166401000000004267ffffffffffffffff16027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161763ffffffff84161790555b6120076124d5565b8015611bf357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600061207d826010615490565b612089906152086154c0565b92915050565b603c60205281600052604060002081815481106120ab57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090612126907801000000000000000000000000000000000000000000000000900467ffffffffffffffff164361545c565b905060006121326125e8565b90506000816020015160ff16826000015163ffffffff16612153919061551b565b9050821561228a5760015460009061218a908390700100000000000000000000000000000000900467ffffffffffffffff16615583565b90506000836040015160ff16836121a191906155f7565b6001546121c19084906fffffffffffffffffffffffffffffffff166155f7565b6121cb919061551b565b60015490915060009061221c906121f59084906fffffffffffffffffffffffffffffffff166156b3565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166126a9565b9050600186111561224b576122486121f582876040015160ff1660018a612243919061545c565b6126c8565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906122bd908490700100000000000000000000000000000000900467ffffffffffffffff166154c0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16131561234a576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612376906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816615727565b9050600061238848633b9aca0061271d565b6123929083615764565b905060005a6123a1908861545c565b9050808211156123bd576123bd6123b8828461545c565b612734565b5050505050505050565b80516020808301516040808501516060860151608087015160a088015193516000976123f7979096959101615778565b604051602081830303815290604052805190602001209050919050565b6000806000612424866000612762565b90508061245a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600081600001518260200151836040015184606001516040516020016123f7949392919093845260208401929092526040830152606082015260800190565b6000806124bd86612780565b90506124cb818686866127b2565b9695505050505050565b600054610100900460ff1661256c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e0565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003611d6d5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260375483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa158015612685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed91906157e5565b60006126be6126b885856127e2565b836127f2565b90505b9392505050565b6000670de0b6b3a76400006127096126e0858361551b565b6126f290670de0b6b3a7640000615583565b61270485670de0b6b3a76400006155f7565b612801565b61271390866155f7565b6126be919061551b565b60008183101561272d57816126c1565b5090919050565b6000805a90505b825a612747908361545c565b101561275d57612756826158a1565b915061273b565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6060818051906020012060405160200161279c91815260200190565b6040516020818303038152906040529050919050565b60006127d9846127c3878686612832565b8051602091820120825192909101919091201490565b95945050505050565b60008183121561272d57816126c1565b600081831261272d57816126c1565b60006126c1670de0b6b3a764000083612819866132b0565b61282391906155f7565b61282d919061551b565b6134f4565b6060600084511161289f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b6579000000000000000000000060448201526064016109e0565b60006128aa84613733565b905060006128b78661381f565b90506000846040516020016128ce91815260200190565b60405160208183030381529060405290506000805b8451811015613227576000858281518110612900576129006158d9565b60200260200101519050845183111561299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e67746800000000000000000000000000000000000060648201526084016109e0565b82600003612a5457805180516020918201206040516129e9926129c392910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016109e0565b612bab565b805151602011612b0a5780518051602091820120604051612a7e926129c392910190815260200190565b612a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c20686173680000000000000000000000000000000000000000000000000060648201526084016109e0565b805184516020808701919091208251919092012014612bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f652068617368000000000000000000000000000000000000000000000000000060648201526084016109e0565b612bb760106001615908565b81602001515103612d935784518303612d2b57612bf18160200151601081518110612be457612be46158d9565b6020026020010151613882565b96506000875111612c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e636829000000000060648201526084016109e0565b60018651612c92919061545c565b8214612d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e63682900000000000060648201526084016109e0565b5050505050506126c1565b6000858481518110612d3f57612d3f6158d9565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110612d6a57612d6a6158d9565b60200260200101519050612d7d816139e2565b9550612d8a600186615908565b94505050613214565b60028160200151510361318c576000612dab82613a07565b9050600081600081518110612dc257612dc26158d9565b016020015160f81c90506000612dd9600283615920565b612de4906002615942565b90506000612df5848360ff16613a2b565b90506000612e038a89613a2b565b90506000612e118383613a61565b905080835114612ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b657900000000000060648201526084016109e0565b60ff851660021480612eb8575060ff85166003145b156130a75780825114612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e64657200000060648201526084016109e0565b612f678760200151600181518110612be457612be46158d9565b9c5060008d5111612ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c656166290000000000000060648201526084016109e0565b60018c51613008919061545c565b8814613096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c65616629000000000000000060648201526084016109e0565b5050505050505050505050506126c1565b60ff851615806130ba575060ff85166001145b156130f9576130e687602001516001815181106130d9576130d96158d9565b60200260200101516139e2565b99506130f2818a615908565b9850613181565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e20707265666978000000000000000000000000000060648201526084016109e0565b505050505050613214565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f646500000000000000000000000000000000000000000000000060648201526084016109e0565b508061321f816158a1565b9150506128e3565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e747300000000000000000000000000000000000000000000000000000060648201526084016109e0565b600080821361331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016109e0565b6000606061332884613b15565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361352557506000919050565b680755bf798b4a1bf1e58212613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f57000000000000000000000000000000000000000060448201526064016109e0565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561375157613751614c38565b60405190808252806020026020018201604052801561379657816020015b604080518082019091526060808252602082015281526020019060019003908161376f5790505b50915060005b818110156138185760405180604001604052808583815181106137c1576137c16158d9565b602002602001015181526020016137f08684815181106137e3576137e36158d9565b6020026020010151613beb565b815250838281518110613805576138056158d9565b602090810291909101015260010161379c565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613877578060011b82018184015160001a8060041c8253600f811660018301535050600101613849565b509295945050505050565b6060600080600061389285613bfe565b9194509250905060008160018111156138ad576138ad61531f565b1461393a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d0000000000000060648201526084016109e0565b6139448284615908565b8551146139d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e64657200000000000000000000000060648201526084016109e0565b6127d98560200151848461466b565b606060208260000151106139fe576139f982613882565b612089565b612089826146ff565b6060612089613a268360200151600081518110612be457612be46158d9565b61381f565b606082518210613a4a5750604080516020810190915260008152612089565b6126c18383848651613a5c919061545c565b614715565b6000808251845110613a74578251613a77565b83515b90505b8082108015613afe5750828281518110613a9657613a966158d9565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613ad557613ad56158d9565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613b0e57816001019150613a7a565b5092915050565b6000808211613b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016109e0565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060612089613bf9836148ed565b6149d6565b600080600080846000015111613cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a4016109e0565b6020840151805160001a607f8111613ce1576000600160009450945094505050614664565b60b78111613eef576000613cf660808361545c565b905080876000015111613db1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a4016109e0565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613e2a57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613edc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a4016109e0565b5060019550935060009250614664915050565b60bf811161423d576000613f0460b78361545c565b905080876000015111613fbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a4016109e0565b60018301517fff0000000000000000000000000000000000000000000000000000000000000016600081900361409d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a4016109e0565b600184015160088302610100031c60378111614161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a4016109e0565b61416b8184615908565b895111614220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a4016109e0565b61422b836001615908565b97509550600094506146649350505050565b60f7811161431e57600061425260c08361545c565b90508087600001511161430d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a4016109e0565b600195509350849250614664915050565b600061432b60f78361545c565b9050808760000151116143e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a4016109e0565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036144c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a4016109e0565b600184015160088302610100031c60378111614588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a4016109e0565b6145928184615908565b895111614647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a4016109e0565b614652836001615908565b97509550600194506146649350505050565b9193909250565b60608167ffffffffffffffff81111561468657614686614c38565b6040519080825280601f01601f1916602001820160405280156146b0576020820181803683370190505b50905081156126c15760006146c58486615908565b90506020820160005b848110156146e65782810151828201526020016146ce565b848111156146f5576000858301525b5050509392505050565b606061208982602001516000846000015161466b565b60608182601f011015614784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016109e0565b8282840110156147f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016109e0565b8183018451101561485d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016109e0565b60608215801561487c57604051915060008252602082016040526148e4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156148b557805183526020928301920161489d565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116149b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a4016109e0565b50604080518082019091528151815260209182019181019190915290565b606060008060006149e685613bfe565b919450925090506001816001811115614a0157614a0161531f565b14614a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d000000000000000060648201526084016109e0565b8451614a9a8385615908565b14614b27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e646572000000000000000000000000000060648201526084016109e0565b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614b3e5790505093506000835b8651811015614c2c57600080614bb16040518060400160405280858c60000151614b95919061545c565b8152602001858c60200151614baa9190615908565b9052613bfe565b509150915060405180604001604052808383614bcd9190615908565b8152602001848b60200151614be29190615908565b815250888581518110614bf757614bf76158d9565b6020908102919091010152614c0d600185615908565b9350614c198183615908565b614c239084615908565b92505050614b6b565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614cae57614cae614c38565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611db857600080fd5b600082601f830112614ce957600080fd5b813567ffffffffffffffff811115614d0357614d03614c38565b614d3460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614c67565b818152846020838601011115614d4957600080fd5b816020850160208301376000918101602001919091529392505050565b600060c08284031215614d7857600080fd5b60405160c0810167ffffffffffffffff8282108183111715614d9c57614d9c614c38565b816040528293508435835260208501359150614db782614cb6565b81602084015260408501359150614dcd82614cb6565b816040840152606085013560608401526080850135608084015260a0850135915080821115614dfb57600080fd5b50614e0885828601614cd8565b60a0830152505092915050565b60008060408385031215614e2857600080fd5b823567ffffffffffffffff811115614e3f57600080fd5b614e4b85828601614d66565b9250506020830135614e5c81614cb6565b809150509250929050565b600060208284031215614e7957600080fd5b81356126c181614cb6565b600080600080600085870360e0811215614e9d57600080fd5b863567ffffffffffffffff80821115614eb557600080fd5b614ec18a838b01614d66565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614efa57600080fd5b60408901955060c0890135925080831115614f1457600080fd5b828901925089601f840112614f2857600080fd5b8235915080821115614f3957600080fd5b508860208260051b8401011115614f4f57600080fd5b959894975092955050506020019190565b600060208284031215614f7257600080fd5b5035919050565b60005b83811015614f94578181015183820152602001614f7c565b83811115610b545750506000910152565b60008151808452614fbd816020860160208601614f79565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126c16020830184614fa5565b6000806040838503121561501557600080fd5b823591506020830135614e5c81614cb6565b63ffffffff81168114611db857600080fd5b60006020828403121561504b57600080fd5b81356126c181615027565b60006020828403121561506857600080fd5b813567ffffffffffffffff81111561507f57600080fd5b61508b84828501614d66565b949350505050565b600080600080608085870312156150a957600080fd5b84356150b481614cb6565b935060208501356150c481614cb6565b925060408501356150d481614cb6565b915060608501356150e481615027565b939692955090935050565b67ffffffffffffffff81168114611db857600080fd5b60006020828403121561511757600080fd5b81356126c1816150ef565b6000806040838503121561513557600080fd5b50508035926020909101359150565b8015158114611db857600080fd5b600080600080600060a0868803121561516a57600080fd5b853561517581614cb6565b945060208601359350604086013561518c816150ef565b9250606086013561519c81615144565b9150608086013567ffffffffffffffff8111156151b857600080fd5b6151c488828901614cd8565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251615225816049850160208701614f79565b919091016049019695505050505050565b60006020828403121561524857600080fd5b81516126c181614cb6565b60008060006060848603121561526857600080fd5b835161527381615027565b6020850151909350615284816150ef565b604085015190925061529581614cb6565b809150509250925092565b6000602082840312156152b257600080fd5b5051919050565b6000608082840312156152cb57600080fd5b6040516080810181811067ffffffffffffffff821117156152ee576152ee614c38565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561536057600080fd5b8151600381106126c157600080fd5b600067ffffffffffffffff8084111561538a5761538a614c38565b8360051b602061539b818301614c67565b8681529185019181810190368411156153b357600080fd5b865b848110156153e7578035868111156153cd5760008081fd5b6153d936828b01614cd8565b8452509183019183016153b5565b50979650505050505050565b60006020828403121561540557600080fd5b81516126c181615144565b60006020828403121561542257600080fd5b81516126c1816150ef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561546e5761546e61542d565b500390565b60006020828403121561548557600080fd5b81516126c181615027565b600067ffffffffffffffff808316818516818304811182151516156154b7576154b761542d565b02949350505050565b600067ffffffffffffffff8083168185168083038211156154e3576154e361542d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261552a5761552a6154ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561557e5761557e61542d565b500590565b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156155bd576155bd61542d565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156155f1576155f161542d565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156156385761563861542d565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156156735761567361542d565b6000871292508782058712848416161561568f5761568f61542d565b878505871281841616156156a5576156a561542d565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156156ed576156ed61542d565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156157215761572161542d565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561575f5761575f61542d565b500290565b600082615773576157736154ec565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526157c360c0830184614fa5565b98975050505050505050565b805160ff811681146157e057600080fd5b919050565b600060c082840312156157f757600080fd5b60405160c0810181811067ffffffffffffffff8211171561581a5761581a614c38565b604052825161582881615027565b8152615836602084016157cf565b6020820152615847604084016157cf565b6040820152606083015161585a81615027565b6060820152608083015161586d81615027565b608082015260a08301516fffffffffffffffffffffffffffffffff8116811461589557600080fd5b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036158d2576158d261542d565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561591b5761591b61542d565b500190565b600060ff831680615933576159336154ec565b8060ff84160691505092915050565b600060ff821660ff84168082101561595c5761595c61542d565b9003939250505056fea164736f6c634300080f000a","sourceMap":"1310:23607:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9614:86;9633:10;9645:9;2352:7;9683:5;9690:9;;;;;;;;;;;;9614:18;:86::i;:::-;1310:23607;;;;;3443:32;;;;;;;;;;-1:-1:-1;3443:32:135;;;;;;;;;;;212:42:357;200:55;;;182:74;;170:2;155:18;3443:32:135;;;;;;;;3156:40;;;;;;;;;;-1:-1:-1;3156:40:135;;;;;;;;;;;4041:33;;;;;;;;;;-1:-1:-1;4041:33:135;;;;;;;;;;;730:10:357;718:23;;;700:42;;688:2;673:18;4041:33:135;524:224:357;14882:2403:135;;;;;;;;;;-1:-1:-1;14882:2403:135;;;;;:::i;:::-;;:::i;7954:101::-;;;;;;;;;;;;;:::i;3892:57::-;;;;;;;;;;-1:-1:-1;3892:57:135;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4257:14:357;;4250:22;4232:41;;4220:2;4205:18;3892:57:135;4092:187:357;10816:3564:135;;;;;;;;;;-1:-1:-1;10816:3564:135;;;;;:::i;:::-;;:::i;4162:40::-;;;;;;;;;;-1:-1:-1;4162:40:135;;;;;;;;;;;;;;5638:18:357;5626:31;;;5608:50;;5596:2;5581:18;4162:40:135;5464:200:357;24767:148:135;;;;;;;;;;-1:-1:-1;24767:148:135;;;;;:::i;:::-;24843:7;24869:32;;;:15;:32;;;;;:39;;24767:148;;;;6000:25:357;;;5988:2;5973:18;24767:148:135;5854:177:357;5882:40:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8115:94::-;;;;;;;;;;;;;:::i;21034:3510::-;;;;;;;;;;-1:-1:-1;21034:3510:135;;;;;:::i;:::-;;:::i;20049:185::-;;;;;;;;;;-1:-1:-1;20049:185:135;;;;;:::i;:::-;;:::i;20481:228::-;;;;;;;;;;-1:-1:-1;20481:228:135;;;;;:::i;:::-;;:::i;14493:178::-;;;;;;;;;;-1:-1:-1;14493:178:135;;;;;:::i;:::-;;:::i;6730:971::-;;;;;;;;;;-1:-1:-1;6730:971:135;;;;;:::i;:::-;;:::i;8453:132::-;;;;;;;;;;-1:-1:-1;8543:35:135;8453:132;;2615:23;;;;;;;;;;-1:-1:-1;2615:23:135;;;;;;;;2729:52;;;;;;;;;;-1:-1:-1;2729:52:135;;;;;:::i;:::-;;;;;;;;;;;;;;;;9078:120;;;;;;;;;;-1:-1:-1;9078:120:135;;;;;:::i;:::-;;:::i;4315:52::-;;;;;;;;;;-1:-1:-1;4315:52:135;;;;;:::i;:::-;;:::i;3712:81::-;;;;;;;;;;-1:-1:-1;3712:81:135;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9667:42:357;9655:55;;;9637:74;;9759:18;9747:31;;;9742:2;9727:18;;9720:59;9610:18;3712:81:135;9442:343:357;8268:119:135;;;;;;;;;;-1:-1:-1;8352:28:135;8268:119;;3093:28:137;;;;;;;;;;-1:-1:-1;3093:28:137;;;;;;;;;;;;;;;;;;;;;;;;;10018:34:357;10006:47;;;9988:66;;10073:18;10127:15;;;10122:2;10107:18;;10100:43;10179:15;;10159:18;;;10152:43;9976:2;9961:18;3093:28:137;9790:411:357;18015:1855:135;;;;;;:::i;:::-;;:::i;3566:44::-;;;;;;;;;;-1:-1:-1;3566:44:135;;;;;;;;18015:1855;18221:9;3511:18:137;3532:9;3511:30;;18375:11:135::1;:32;;;;-1:-1:-1::0;18390:17:135::1;::::0;::::1;::::0;::::1;18375:32;18371:56;;;18416:11;;;;;;;;;;;;;;18371:56;18591:37;18614:5;:12;18591:15;:37::i;:::-;18579:49;;:9;:49;;;18575:77;;;18637:15;;;;;;;;;;;;;;18575:77;19042:7;19027:5;:12;:22;19023:50;;;19058:15;;;;;;;;;;;;;;19023:50;19179:10;19217:9;19203:23:::0;::::1;19199:108;;-1:-1:-1::0;19285:10:135::1;741:42:237::0;1213:27;19199:108:135::1;19564:23;19607:9;19618:6;19626:9;19637:11;19650:5;19590:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19564:92;;2202:1;19830:3;19803:60;;19824:4;19803:60;;;19852:10;19803:60;;;;;;:::i;:::-;;;;;;;;18236:1634;;3642:29:137::0;3651:7;3660:10;3642:8;:29::i;:::-;3433:245;18015:1855:135;;;;;;:::o;14882:2403::-;5766:8;:6;:8::i;:::-;5762:33;;;5783:12;;;;;;;;;;;;;;5762:33;15328:8:::1;::::0;:39:::1;:8;1338:42:192;15328:39:135;15307:137;;;::::0;::::1;::::0;;12464:2:357;15307:137:135::1;::::0;::::1;12446:21:357::0;12503:2;12483:18;;;12476:30;12542:34;12522:18;;;12515:62;12613:33;12593:18;;;12586:61;12664:19;;15307:137:135::1;;;;;;;;;15495:22;15520:27;15543:3;15520:22;:27::i;:::-;15495:52;;15613:48;15629:14;15645:15;15613;:48::i;:::-;15741:36;::::0;;;:20:::1;:36;::::0;;;;;;;:43;;;::::1;15780:4;15741:43;::::0;;15889:10;;::::1;::::0;15878:8:::1;:21:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;16558:10;::::1;::::0;16570:12:::1;::::0;::::1;::::0;16584:9:::1;::::0;::::1;::::0;16595:8:::1;::::0;::::1;::::0;16534:70:::1;::::0;16558:10;16570:12;16584:9;16534:23:::1;:70::i;:::-;16672:8;:38:::0;;;::::1;1338:42:192;16672:38:135;::::0;;16869:44:::1;::::0;16519:85;;-1:-1:-1;16889:14:135;;16869:44:::1;::::0;::::1;::::0;16519:85;4257:14:357;4250:22;4232:41;;4220:2;4205:18;;4092:187;16869:44:135::1;;;;;;;;17178:7;17177:8;:53;;;;-1:-1:-1::0;17189:9:135::1;1016:1:192;17189:41:135;17177:53;17173:106;;;17253:15;;;;;;;;;;;;;;17173:106;15062:2223;;14882:2403:::0;;:::o;7954:101::-;7995:7;8021:16;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8014:34;;7954:101;:::o;10816:3564::-;5766:8;:6;:8::i;:::-;5762:33;;;5783:12;;;;;;;;;;;;;;5762:33;11351:4:::1;11329:27;;:3;:10;;;:27;;::::0;11321:103:::1;;;::::0;::::1;::::0;;13152:2:357;11321:103:135::1;::::0;::::1;13134:21:357::0;13191:2;13171:18;;;13164:30;13230:34;13210:18;;;13203:62;13301:33;13281:18;;;13274:61;13352:19;;11321:103:135::1;12950:427:357::0;11321:103:135::1;11562:18;::::0;:49:::1;::::0;;;;::::1;::::0;::::1;6000:25:357::0;;;11516:17:135::1;::::0;;;11562:18:::1;::::0;;::::1;::::0;:30:::1;::::0;5973:18:357;;11562:49:135::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11515:96;;;;;11621:16;11640:9;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11776:17;::::0;11621:40;;-1:-1:-1;11776:17:135::1;11758:12:::0;;::::1;11776:17:::0;::::1;11758:41;11750:87;;;::::0;::::1;::::0;;14432:2:357;11750:87:135::1;::::0;::::1;14414:21:357::0;14471:2;14451:18;;;14444:30;14510:34;14490:18;;;14483:62;14581:3;14561:18;;;14554:31;14602:19;;11750:87:135::1;14230:397:357::0;11750:87:135::1;11977:45;;;::::0;;::::1;::::0;::::1;12005:16:::0;11977:45:::1;:::i;:::-;:27;:45::i;:::-;11957:10:::0;:65:::1;11936:153;;;::::0;::::1;::::0;;15487:2:357;11936:153:135::1;::::0;::::1;15469:21:357::0;15526:2;15506:18;;;15499:30;15565:34;15545:18;;;15538:62;15636:11;15616:18;;;15609:39;15665:19;;11936:153:135::1;15285:405:357::0;11936:153:135::1;12200:22;12225:27;12248:3;12225:22;:27::i;:::-;12200:52:::0;-1:-1:-1;12446:26:135::1;12424:9;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;;;;;;:::i;:::-;::::0;12403:153:::1;;;::::0;::::1;::::0;;16368:2:357;12403:153:135::1;::::0;::::1;16350:21:357::0;16407:2;16387:18;;;16380:30;16446:34;16426:18;;;16419:62;16517:28;16497:18;;;16490:56;16563:19;;12403:153:135::1;16166:422:357::0;12403:153:135::1;12836:147;::::0;;::::1;::::0;::::1;16767:25:357::0;;;12792:18:135::1;16808::357::0;;;16801:34;;;16740:18;;12836:147:135::1;::::0;;;;;::::1;::::0;;;;;;12813:180;;12836:147:::1;12813:180:::0;;::::1;::::0;13408:22;;::::1;6000:25:357::0;;;12813:180:135;-1:-1:-1;13346:240:135::1;::::0;5973:18:357;13408:22:135::1;::::0;;;;;::::1;::::0;;;13346:240;;::::1;::::0;;;::::1;::::0;;::::1;13408:22;13346:240:::0;::::1;::::0;13408:22;13346:240:::1;13489:16:::0;;13346:240:::1;:::i;:::-;13530:16;:41;;;13346:37;:240::i;:::-;13325:337;;;::::0;::::1;::::0;;18169:2:357;13325:337:135::1;::::0;::::1;18151:21:357::0;18208:2;18188:18;;;18181:30;18247:34;18227:18;;;18220:62;18318:20;18298:18;;;18291:48;18356:19;;13325:337:135::1;17967:414:357::0;13325:337:135::1;14020:85;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;14086:15;14020:85:::0;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;13960:33:135;;;:17:::1;:33:::0;;;;;13994:10:::1;13960:45:::0;;;;;;;:145;;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;14210:10;;::::1;::::0;14198;;::::1;::::0;14165:56;;;;::::1;::::0;;;::::1;::::0;13978:14;;14165:56:::1;::::0;::::1;-1:-1:-1::0;14325:31:135::1;::::0;;;:15:::1;:31;::::0;;;;;;:48;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;;::::1;14362:10;14325:48;::::0;;-1:-1:-1;;;;;;;;10816:3564:135:o;8115:94::-;8154:4;8177:16;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21034:3510::-;21131:40;21174:34;;;:17;:34;;;;;;;;:51;;;;;;;;;;;;21131:94;;;;;;;;;;;;;;;;;;;;;;;;;21373:38;;;:20;:38;;;;;;21131:94;;;21373:38;;21372:39;21364:101;;;;;;;18838:2:357;21364:101:135;;;18820:21:357;18877:2;18857:18;;;18850:30;18916:34;18896:18;;;18889:62;18987:19;18967:18;;;18960:47;19024:19;;21364:101:135;18636:413:357;21364:101:135;21728:16;:26;;;:31;;21758:1;21728:31;21707:155;;;;;;;19256:2:357;21707:155:135;;;19238:21:357;19295:2;19275:18;;;19268:30;19334:34;19314:18;;;19307:62;19405:34;19385:18;;;19378:62;19477:15;19456:19;;;19449:44;19510:19;;21707:155:135;19054:481:357;21707:155:135;21873:16;21892:34;:16;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;5038:9:177;4918:145;21892:34:135;21873:53;;22240:9;22211:38;;:16;:26;;;:38;;;22190:163;;;;;;;20029:2:357;22190:163:135;;;20011:21:357;20068:2;20048:18;;;20041:30;20107:34;20087:18;;;20080:62;20178:34;20158:18;;;20151:62;20250:16;20229:19;;;20222:45;20284:19;;22190:163:135;19827:482:357;22190:163:135;22532:28;22503:16;:26;;;22485:44;;:15;:44;;;;:::i;:::-;:75;22464:175;;;;;;;20835:2:357;22464:175:135;;;20817:21:357;20874:2;20854:18;;;20847:30;20913:34;20893:18;;;20886:62;20984:23;20964:18;;;20957:51;21025:19;;22464:175:135;20633:417:357;22464:175:135;22972:24;22943:16;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;;;;;:::i;:::-;;22922:154;;;;;;;21257:2:357;22922:154:135;;;21239:21:357;21296:2;21276:18;;;21269:30;21335:34;21315:18;;;21308:62;21406:24;21386:18;;;21379:52;21448:19;;22922:154:135;21055:418:357;22922:154:135;23386:17;;;;23349:60;;:33;:16;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;5038:9:177;4918:145;23349:33:135;:60;;;23341:106;;;;;;;14432:2:357;23341:106:135;;;14414:21:357;14471:2;14451:18;;;14444:30;14510:34;14490:18;;;14483:62;14581:3;14561:18;;;14554:31;14602:19;;23341:106:135;14230:397:357;23341:106:135;23722:26;;;;;;;;;23709:39;;;;;23688:161;;;;;;;21989:2:357;23688:161:135;;;21971:21:357;22028:2;22008:18;;;22001:30;22067:34;22047:18;;;22040:62;22138:34;22118:18;;;22111:62;22210:13;22189:19;;;22182:42;22241:19;;23688:161:135;21787:479:357;23688:161:135;24222:35;24184;:16;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:35;24166:53;;;;:15;:53;:::i;:::-;:91;24145:180;;;;;;;22473:2:357;24145:180:135;;;22455:21:357;22512:2;22492:18;;;22485:30;22551:34;22531:18;;;22524:62;22622:12;22602:18;;;22595:40;22652:19;;24145:180:135;22271:406:357;24145:180:135;24442:37;;;;:20;:37;;;;;;;;24441:38;24433:104;;;;;;;22884:2:357;24433:104:135;;;22866:21:357;22923:2;22903:18;;;22896:30;22962:34;22942:18;;;22935:62;23033:23;23013:18;;;23006:51;23074:19;;24433:104:135;22682:417:357;24433:104:135;21121:3423;;;21034:3510;;:::o;20049:185::-;20143:10;:8;:10::i;:::-;20129:24;;:10;:24;;;20125:51;;20162:14;;;;;;;;;;;;;;20125:51;20186:34;;;;;;:20;:34;;;;;:41;;;;20223:4;20186:41;;;20049:185::o;20481:228::-;20568:10;:8;:10::i;:::-;20554:24;;:10;:24;;;20550:51;;20587:14;;;;;;;;;;;;;;20550:51;20611:17;:29;;;;;;;20650:52;;;;;;;;;20686:15;20650:52;;;;;;20481:228::o;9921:77::-;:::o;14493:178::-;5766:8;:6;:8::i;:::-;5762:33;;;5783:12;;;;;;;;;;;;;;5762:33;14605:59:::1;14648:3;14653:10;14605:42;:59::i;:::-;14493:178:::0;:::o;6730:971::-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;23306:2:357;3146:190:43;;;23288:21:357;23345:2;23325:18;;;23318:30;23384:34;23364:18;;;23357:62;23455:16;23435:18;;;23428:44;23489:19;;3146:190:43;23104:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;6977:18:135::1;:40:::0;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;7027:12:::1;:28:::0;;;;::::1;::::0;;::::1;;::::0;;7065:16:::1;:36:::0;;;::::1;6977:40;7065:36:::0;;::::1;;;::::0;;7249:8:::1;::::0;::::1;7245:414;;7287:8;:38:::0;;1338:42:192::1;7287:38:135::0;;;::::1;;::::0;;7485:26:::1;:52:::0;;7603:45;;7485:52;7521:15:::1;7485:52;;;7603:45:::0;;;::::1;::::0;::::1;;::::0;;7245:414:::1;7669:25;:23;:25::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;23671:36:357;;3531:14:43;;23659:2:357;23644:18;3531:14:43;;;;;;;3090:472;6730:971:135;;;;:::o;9078:120::-;9143:6;9168:15;:10;9181:2;9168:15;:::i;:::-;:23;;9186:5;9168:23;:::i;:::-;9161:30;9078:120;-1:-1:-1;;9078:120:135:o;4315:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4315:52:135;;-1:-1:-1;4315:52:135:o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;3911:3974:137:-;4078:6;:19;4043:17;;4063:34;;4078:19;;;;;4063:12;:34;:::i;:::-;4043:54;;4108:28;4139:17;:15;:17::i;:::-;4108:48;;4166:26;4265:6;:27;;;4257:36;;4222:6;:23;;;4214:32;;4207:87;;;;:::i;:::-;4166:128;-1:-1:-1;4309:13:137;;4305:2229;;4666:6;:20;4629:19;;4651:59;;4691:19;;4666:20;;;;;4651:59;:::i;:::-;4629:81;;4724:19;4855:6;:34;;;4847:43;;4818:19;:73;;;;:::i;:::-;4762:6;:18;4747:50;;4785:12;;4762:18;;4747:50;:::i;:::-;4746:146;;;;:::i;:::-;5111:6;:18;4724:168;;-1:-1:-1;5033:17:137;;5053:232;;5096:50;;4724:168;;5111:18;;5096:50;:::i;:::-;5185:6;:21;;;5177:30;;5247:6;:21;;;5239:30;;5053:16;:232::i;:::-;5033:252;;5562:1;5550:9;:13;5546:741;;;5835:437;5882:239;5939:10;6004:6;:34;;;5996:43;;6096:1;6084:9;:13;;;;:::i;:::-;5882:16;:239::i;5835:437::-;5822:450;;5546:741;6380:49;;6481:42;6443:24;6510:12;6481:42;;;6380:6;6481:42;-1:-1:-1;;4305:2229:137;6628:6;:31;;6652:7;;6628:6;:20;;:31;;6652:7;;6628:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6728:6;:23;;;6720:32;;6688:6;:20;;;;;;;;;;;;6680:29;;6673:80;6669:128;;;6776:10;;;;;;;;;;;;;;6669:128;6908:6;:18;6858:20;;6881:46;;6908:18;;6881:16;;;:46;:::i;:::-;6858:69;;7409:15;7442:31;7451:13;7466:6;7442:8;:31::i;:::-;7427:46;;:12;:46;:::i;:::-;7409:64;;7753:15;7785:9;7771:23;;:11;:23;:::i;:::-;7753:41;;7818:7;7808;:17;7804:75;;;7841:27;7850:17;7860:7;7850;:17;:::i;:::-;7841:8;:27::i;:::-;3975:3910;;;;;;3911:3974;;:::o;4456:211:196:-;4590:9;;4601:10;;;;;4613;;;;;4625:9;;;;4636:12;;;;4650:8;;;;4579:80;;4543:7;;4579:80;;4590:9;;4601:10;4650:8;4579:80;;:::i;:::-;;;;;;;;;;;;;4569:91;;;;;;4562:98;;4456:211;;;:::o;4419:2320:200:-;4589:4;4609:13;4632:15;4650:21;4660:7;4669:1;4650:9;:21::i;:::-;4632:39;;4782:10;4772:1146;;4894:10;4891:1;4884:21;5009:2;5005;4998:14;5747:56;5743:2;5736:68;5900:3;5896:2;5889:15;4772:1146;6666:4;6630;6589:9;6583:16;6549:2;6538:9;6534:18;6491:6;6449:7;6415:5;6389:309;6361:337;4419:2320;-1:-1:-1;;;;;;;4419:2320:200:o;4961:384:196:-;5060:7;5137:16;:24;;;5179:16;:26;;;5223:16;:41;;;5282:16;:32;;;5109:219;;;;;;;;;;27392:25:357;;;27448:2;27433:18;;27426:34;;;;27491:2;27476:18;;27469:34;27534:2;27519:18;;27512:34;27379:3;27364:19;;27161:391;1041:343:206;1234:11;1261:16;1280:19;1294:4;1280:13;:19::i;:::-;1261:38;;1318:59;1350:3;1355:6;1363;1371:5;1318:31;:59::i;:::-;1309:68;1041:343;-1:-1:-1;;;;;;1041:343:206:o;8340:234:137:-;4888:13:43;;;;;;;4880:69;;;;;;;27759:2:357;4880:69:43;;;27741:21:357;27798:2;27778:18;;;27771:30;27837:34;27817:18;;;27810:62;27908:13;27888:18;;;27881:41;27939:19;;4880:69:43;27557:407:357;4880:69:43;8415:6:137::1;:19:::0;;;::::1;;;;:24:::0;8411:157:::1;;8464:93;::::0;;::::1;::::0;::::1;::::0;;8494:6:::1;8464:93:::0;;;-1:-1:-1;8464:93:137::1;::::0;::::1;::::0;8541:12:::1;8464:93;;::::0;;;;;;;8455:102;::::1;;:6;:102:::0;8340:234::o;10247:152:135:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:12:135;;:29;;;;;;;-1:-1:-1;;10363:12:135;;;;;:27;;:29;;;;;-1:-1:-1;;10363:29:135;;;;;;:12;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;537:161:189:-;616:6;641:50;656:28;671:6;679:4;656:14;:28::i;:::-;686:4;641:14;:50::i;:::-;634:57;;537:161;;;;;;:::o;1040:228::-;1138:6;1257:4;1180:72;1213:19;1220:12;1257:4;1213:19;:::i;:::-;1205:28;;:4;:28;:::i;:::-;1235:16;:9;1247:4;1235:16;:::i;:::-;1180:24;:72::i;:::-;1164:89;;:12;:89;:::i;:::-;1163:98;;;;:::i;413:105:69:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:69;;490:21;-1:-1:-1;413:105:69:o;407:192:190:-;461:9;484:18;505:9;484:30;;524:69;556:7;544:9;531:22;;:10;:22;:::i;:::-;:32;524:69;;;579:3;;;:::i;:::-;;;524:69;;;451:148;;407:192;:::o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;2052:142:206:-;2116:18;2181:4;2171:15;;;;;;2154:33;;;;;;29671:19:357;;29715:2;29706:12;;29542:182;2154:33:206;;;;;;;;;;;;;2146:41;;2052:142;;;:::o;2253:281:205:-;2446:11;2482:45;2494:6;2502:24;2506:4;2512:6;2520:5;2502:3;:24::i;:::-;6693:17:191;;;;;;;6672;;;;;;;;;;:38;;6569:148;2482:45:205;2473:54;2253:281;-1:-1:-1;;;;;2253:281:205:o;311:102:71:-;367:6;397:1;392;:6;;:14;;405:1;392:14;;491:101;547:6;576:1;572;:5;:13;;584:1;572:13;;1208:273:106;1267:6;1391:36;491:4;1410:1;1399:8;1405:1;1399:5;:8::i;:::-;:12;;;;:::i;:::-;1398:28;;;;:::i;:::-;1391:6;:36::i;2830:6314:205:-;2923:19;2976:1;2962:4;:11;:15;2954:49;;;;;;;29931:2:357;2954:49:205;;;29913:21:357;29970:2;29950:18;;;29943:30;30009:23;29989:18;;;29982:51;30050:18;;2954:49:205;29729:345:357;2954:49:205;3014:23;3040:19;3052:6;3040:11;:19::i;:::-;3014:45;;3069:16;3088:21;3104:4;3088:15;:21::i;:::-;3069:40;;3119:26;3165:5;3148:23;;;;;;29671:19:357;;29715:2;29706:12;;29542:182;3148:23:205;;;;;;;;;;;;;3119:52;;3181:23;3295:9;3290:5790;3314:5;:12;3310:1;:16;3290:5790;;;3347:27;3377:5;3383:1;3377:8;;;;;;;;:::i;:::-;;;;;;;3347:38;;3516:3;:10;3497:15;:29;;3489:88;;;;;;;30470:2:357;3489:88:205;;;30452:21:357;30509:2;30489:18;;;30482:30;30548:34;30528:18;;;30521:62;30619:16;30599:18;;;30592:44;30653:19;;3489:88:205;30268:410:357;3489:88:205;3596:15;3615:1;3596:20;3592:837;;3768:19;;3758:30;;;;;;;3741:48;;3729:76;;3741:48;;3758:30;3741:48;29671:19:357;;;29715:2;29706:12;;29542:182;3741:48:205;;;;;;;;;;;;;3791:13;6693:17:191;;;;;;;6672;;;;;;;;;;:38;;6569:148;3729:76:205;3700:176;;;;;;;30885:2:357;3700:176:205;;;30867:21:357;30924:2;30904:18;;;30897:30;30963:31;30943:18;;;30936:59;31012:18;;3700:176:205;30683:353:357;3700:176:205;3592:837;;;3901:19;;:26;3931:2;-1:-1:-1;3897:532:205;;4097:19;;4087:30;;;;;;;4070:48;;4058:76;;4070:48;;4087:30;4070:48;29671:19:357;;;29715:2;29706:12;;29542:182;4058:76:205;4029:186;;;;;;;31243:2:357;4029:186:205;;;31225:21:357;31282:2;31262:18;;;31255:30;31321:34;31301:18;;;31294:62;31392:9;31372:18;;;31365:37;31419:19;;4029:186:205;31041:403:357;3897:532:205;4336:19;;6693:17:191;;;;;;;;;;6672;;;;;;;:38;4316:98:205;;;;;;;31651:2:357;4316:98:205;;;31633:21:357;31690:2;31670:18;;;31663:30;31729:34;31709:18;;;31702:62;31800:8;31780:18;;;31773:36;31826:19;;4316:98:205;31449:402:357;4316:98:205;936:14;803:2;949:1;936:14;:::i;:::-;4447:11;:19;;;:26;:48;4443:4627;;4538:3;:10;4519:15;:29;4515:1346;;5047:52;5067:11;:19;;;803:2;5067:31;;;;;;;;:::i;:::-;;;;;;;5047:19;:52::i;:::-;5038:61;;5145:1;5129:6;:13;:17;5121:89;;;;;;;32191:2:357;5121:89:205;;;32173:21:357;32230:2;32210:18;;;32203:30;32269:34;32249:18;;;32242:62;32340:29;32320:18;;;32313:57;32387:19;;5121:89:205;31989:423:357;5121:89:205;5322:1;5307:5;:12;:16;;;;:::i;:::-;5302:1;:21;5294:92;;;;;;;32619:2:357;5294:92:205;;;32601:21:357;32658:2;32638:18;;;32631:30;32697:34;32677:18;;;32670:62;32768:28;32748:18;;;32741:56;32814:19;;5294:92:205;32417:422:357;5294:92:205;5409:13;;;;;;;;4515:1346;5609:15;5633:3;5637:15;5633:20;;;;;;;;:::i;:::-;;;;;;;;;5627:27;;5609:45;;5676:33;5712:11;:19;;;5732:9;5712:30;;;;;;;;;;:::i;:::-;;;;;;;5676:66;;5780:20;5791:8;5780:10;:20::i;:::-;5764:36;-1:-1:-1;5822:20:205;5841:1;5822:20;;:::i;:::-;;;5447:414;;4443:4627;;;1105:1;5885:11;:19;;;:26;:59;5881:3189;;5964:17;5984:25;5997:11;5984:12;:25::i;:::-;5964:45;;6027:12;6048:4;6053:1;6048:7;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6074:12:205;6094:10;6103:1;6048:7;6094:10;:::i;:::-;6089:16;;:1;:16;:::i;:::-;6074:31;;6123:26;6152:25;6164:4;6170:6;6152:25;;:11;:25::i;:::-;6123:54;;6195:25;6223:33;6235:3;6240:15;6223:11;:33::i;:::-;6195:61;;6274:26;6303:51;6326:13;6341:12;6303:22;:51::i;:::-;6274:80;;6661:18;6637:13;:20;:42;6608:171;;;;;;;33408:2:357;6608:171:205;;;33390:21:357;33447:2;33427:18;;;33420:30;33486:34;33466:18;;;33459:62;33557:28;33537:18;;;33530:56;33603:19;;6608:171:205;33206:422:357;6608:171:205;6802:26;;;1447:1;6802:26;;:55;;-1:-1:-1;6832:25:205;;;1553:1;6832:25;6802:55;6798:2169;;;7498:18;7475:12;:19;:41;7442:185;;;;;;;33835:2:357;7442:185:205;;;33817:21:357;33874:2;33854:18;;;33847:30;33913:34;33893:18;;;33886:62;33984:31;33964:18;;;33957:59;34033:19;;7442:185:205;33633:425:357;7442:185:205;7985:43;8005:11;:19;;;8025:1;8005:22;;;;;;;;:::i;7985:43::-;7976:52;;8074:1;8058:6;:13;:17;8050:87;;;;;;;34265:2:357;8050:87:205;;;34247:21:357;34304:2;34284:18;;;34277:30;34343:34;34323:18;;;34316:62;34414:27;34394:18;;;34387:55;34459:19;;8050:87:205;34063:421:357;8050:87:205;8249:1;8234:5;:12;:16;;;;:::i;:::-;8229:1;:21;8221:90;;;;;;;34691:2:357;8221:90:205;;;34673:21:357;34730:2;34710:18;;;34703:30;34769:34;34749:18;;;34742:62;34840:26;34820:18;;;34813:54;34884:19;;8221:90:205;34489:420:357;8221:90:205;8334:13;;;;;;;;;;;;;;6798:2169;8376:31;;;;;:65;;-1:-1:-1;8411:30:205;;;1339:1;8411:30;8376:65;8372:595;;;8748:34;8759:11;:19;;;8779:1;8759:22;;;;;;;;:::i;:::-;;;;;;;8748:10;:34::i;:::-;8732:50;-1:-1:-1;8804:37:205;8823:18;8804:37;;:::i;:::-;;;8372:595;;;8888:60;;;;;35116:2:357;8888:60:205;;;35098:21:357;35155:2;35135:18;;;35128:30;35194:34;35174:18;;;35167:62;35265:20;35245:18;;;35238:48;35303:19;;8888:60:205;34914:414:357;8372:595:205;5946:3035;;;;;;5881:3189;;;9005:50;;;;;35535:2:357;9005:50:205;;;35517:21:357;35574:2;35554:18;;;35547:30;35613:34;35593:18;;;35586:62;35684:10;35664:18;;;35657:38;35712:19;;9005:50:205;35333:404:357;5881:3189:205;-1:-1:-1;3328:3:205;;;;:::i;:::-;;;;3290:5790;;;-1:-1:-1;9090:47:205;;;;;35944:2:357;9090:47:205;;;35926:21:357;35983:2;35963:18;;;35956:30;36022:34;36002:18;;;35995:62;36093:7;36073:18;;;36066:35;36118:19;;9090:47:205;35742:401:357;4596:2947:106;4644:8;4700:1;4696;:5;4688:27;;;;;;;36350:2:357;4688:27:106;;;36332:21:357;36389:1;36369:18;;;36362:29;36427:11;36407:18;;;36400:39;36456:18;;4688:27:106;36148:332:357;4688:27:106;5107:8;5145:2;5125:16;5138:1;5125:4;:16::i;:::-;5118:29;5175:3;:7;;;5161:22;;;;5208:17;;;6001:31;5997:35;;6052:5;;5459:2;6051:13;;;6068:32;6050:50;6120:5;;6119:13;;6136:33;6118:51;6189:5;;6188:13;;6205:33;6187:51;6258:5;;6257:13;;6274:33;6256:51;6327:5;;6326:13;;6343:32;6325:50;6395:5;;6394:13;;6411:30;6393:48;5398:31;5394:35;;5449:5;;5448:13;;5465:32;5447:50;5517:5;;5516:13;;5533:32;5515:50;5585:5;;5584:13;;5583:50;;5653:5;;5652:13;;5651:50;;5721:5;;5720:13;;;5719:50;;5787:5;;;:46;;6735:10;7125:43;7120:48;7232:71;:75;;;;7227:80;;;;7380:72;7375:77;7523:3;7517:9;;;-1:-1:-1;;4596:2947:106:o;1487:3103::-;1536:8;1718:21;1713:1;:26;1709:40;;-1:-1:-1;1748:1:106;;1487:3103;-1:-1:-1;1487:3103:106:o;1709:40::-;1948:21;1943:1;:26;1939:54;;1971:22;;;;;36687:2:357;1971:22:106;;;36669:21:357;36726:2;36706:18;;;36699:30;36765:14;36745:18;;;36738:42;36797:18;;1971:22:106;36485:336:357;1939:54:106;2266:5;2260:2;2255:7;;;2254:17;;-1:-1:-1;2535:8:106;2601:2;2559:29;2548:7;;;2547:41;2591:5;2547:49;2546:57;;2629:29;2625:33;;2621:37;;;3300:35;;;3355:5;;2935:2;3354:13;;;3371:32;3353:50;3423:5;;3422:13;;3421:51;;3492:5;;3491:13;;3508:34;3490:52;3562:5;;3561:13;;3560:53;;3633:5;;3632:13;;3649:35;3631:53;2941:32;2874:31;2870:35;;2925:5;;2924:13;;2923:50;;;2998:5;;;:40;;3058:5;3057:13;;;3074:35;3056:53;3127:5;;;3136:40;3127:50;4002:10;4502:49;4489:62;4564:3;:7;;;;4488:84;;;;;;-1:-1:-1;;1487:3103:106:o;9434:390:205:-;9553:13;;9500:24;;9553:13;9585:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9585:22:205;;;;;;;;;;;;;;;;9576:31;;9622:9;9617:201;9641:6;9637:1;:10;9617:201;;;9676:72;;;;;;;;9696:6;9703:1;9696:9;;;;;;;;:::i;:::-;;;;;;;9676:72;;;;9716:29;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;9716:18;:29::i;:::-;9676:72;;;9664:6;9671:1;9664:9;;;;;;;;:::i;:::-;;;;;;;;;;:84;9790:3;;9617:201;;;;9526:298;9434:390;;;:::o;4332:1978:191:-;4395:12;4419:21;4550:4;4544:11;4532:23;;4663:6;4657:13;4836:11;4830:4;4826:22;5195:4;5180:13;5176:24;5169:4;5165:9;5161:40;5151:8;5147:55;5141:4;5134:69;5293:13;5283:8;5276:31;;5434:4;5426:6;5422:17;5571:4;5561:8;5557:19;5662:4;5647:622;5675:11;5672:1;5669:18;5647:622;;;5854:1;5848:4;5844:12;5830;5826:31;5996:1;5984:10;5980:18;5974:25;5968:4;5963:37;6119:1;6113:4;6109:12;6101:6;6093:29;6249:4;6246:1;6242:12;6235:4;6227:6;6223:17;6215:40;-1:-1:-1;;5702:4:191;5695:12;5647:622;;;-1:-1:-1;6295:8:191;;4332:1978;-1:-1:-1;;;;;4332:1978:191:o;3993:464:203:-;4055:17;4085:18;4105;4125:20;4149:18;4163:3;4149:13;:18::i;:::-;4084:83;;-1:-1:-1;4084:83:203;-1:-1:-1;4084:83:203;-1:-1:-1;4198:21:203;4186:8;:33;;;;;;;;:::i;:::-;;4178:103;;;;;;;37028:2:357;4178:103:203;;;37010:21:357;37067:2;37047:18;;;37040:30;37106:34;37086:18;;;37079:62;37177:27;37157:18;;;37150:55;37222:19;;4178:103:203;36826:421:357;4178:103:203;4314:23;4327:10;4314;:23;:::i;:::-;4300:10;;:37;4292:102;;;;;;;37454:2:357;4292:102:203;;;37436:21:357;37493:2;37473:18;;;37466:30;37532:34;37512:18;;;37505:62;37603:22;37583:18;;;37576:50;37643:19;;4292:102:203;37252:416:357;4292:102:203;4412:38;4418:3;:7;;;4427:10;4439;4412:5;:38::i;10121:193:205:-;10195:16;10244:2;10229:5;:12;;;:17;:78;;10281:26;10301:5;10281:19;:26::i;:::-;10229:78;;;10249:29;10272:5;10249:22;:29::i;10495:172::-;10562:21;10606:54;10622:37;10642:5;:13;;;10656:1;10642:16;;;;;;;;:::i;10622:37::-;10606:15;:54::i;3805:237:191:-;3880:12;3918:6;:13;3908:6;:23;3904:70;;-1:-1:-1;3954:9:191;;;;;;;;;-1:-1:-1;3954:9:191;;3947:16;;3904:70;3990:45;3996:6;4004;4028;4012;:13;:22;;;;:::i;:::-;3990:5;:45::i;10892:321:205:-;10980:15;11007:11;11034:2;:9;11022:2;:9;:21;11021:47;;11059:2;:9;11021:47;;;11047:2;:9;11021:47;11007:61;;11078:129;11095:3;11085:7;:13;:43;;;;;11117:2;11120:7;11117:11;;;;;;;;:::i;:::-;;;;;;;;;11102:26;;;:2;11105:7;11102:11;;;;;;;;:::i;:::-;;;;;;;:26;11085:43;11078:129;;;11173:9;;;;;11078:129;;;10997:216;10892:321;;;;:::o;15328:575:106:-;15376:9;15409:1;15405;:5;15397:27;;;;;;;36350:2:357;15397:27:106;;;36332:21:357;36389:1;36369:18;;;36362:29;36427:11;36407:18;;;36400:39;36456:18;;15397:27:106;36148:332:357;15397:27:106;-1:-1:-1;15821:1:106;15473:34;-1:-1:-1;;15467:1:106;15463:49;15566:9;;;15546:18;15543:33;15540:1;15536:41;15530:48;15624:9;;;15612:10;15609:25;15606:1;15602:33;15596:40;15678:9;;;15670:6;15667:21;15664:1;15660:29;15654:36;15730:9;;;15724:4;15721:19;15718:1;15714:27;;;15708:34;;;15781:9;;;15776:3;15773:18;15770:1;15766:26;15760:33;15832:9;;;15824:18;;;15817:26;;15811:33;15876:9;;;-1:-1:-1;15862:25:106;;15328:575::o;3732:130:203:-;3791:21;3831:24;3840:14;3850:3;3840:9;:14::i;:::-;3831:8;:24::i;5246:4079::-;5335:15;5352;5369:17;5705:1;5692:3;:10;;;:14;5684:101;;;;;;;37875:2:357;5684:101:203;;;37857:21:357;37914:2;37894:18;;;37887:30;37953:34;37933:18;;;37926:62;38024:34;38004:18;;;37997:62;38096:12;38075:19;;;38068:41;38126:19;;5684:101:203;37673:478:357;5684:101:203;5816:7;;;;5898:10;;5796:17;5890:19;5943:4;5933:14;;5929:3390;;5999:1;6002;6005:21;5991:36;;;;;;;;;;5929:3390;6058:4;6048:6;:14;6044:3275;;6164:14;6181:13;6190:4;6181:6;:13;:::i;:::-;6164:30;;6247:6;6234:3;:10;;;:19;6209:140;;;;;;;38358:2:357;6209:140:203;;;38340:21:357;38397:2;38377:18;;;38370:30;38436:34;38416:18;;;38409:62;38507:34;38487:18;;;38480:62;38579:16;38558:19;;;38551:45;38613:19;;6209:140:203;38156:482:357;6209:140:203;6471:1;6462:11;;;6456:18;6476:14;6452:39;;6544:11;;;;:41;;-1:-1:-1;6559:26:203;;;;;;6544:41;6519:177;;;;;;;38845:2:357;6519:177:203;;;38827:21:357;38884:2;38864:18;;;38857:30;38923:34;38903:18;;;38896:62;38994:34;38974:18;;;38967:62;39066:15;39045:19;;;39038:44;39099:19;;6519:177:203;38643:481:357;6519:177:203;-1:-1:-1;6719:1:203;;-1:-1:-1;6722:6:203;-1:-1:-1;6730:21:203;;-1:-1:-1;6711:41:203;;-1:-1:-1;;6711:41:203;6044:3275;6783:4;6773:6;:14;6769:2550;;6831:19;6853:13;6862:4;6853:6;:13;:::i;:::-;6831:35;;6919:11;6906:3;:10;;;:24;6881:164;;;;;;;39331:2:357;6881:164:203;;;39313:21:357;39370:2;39350:18;;;39343:30;39409:34;39389:18;;;39382:62;39480:34;39460:18;;;39453:62;39552:19;39531;;;39524:48;39589:19;;6881:164:203;39129:485:357;6881:164:203;7167:1;7158:11;;7152:18;7172:14;7148:39;7060:25;7240:26;;;7215:143;;;;;;;39821:2:357;7215:143:203;;;39803:21:357;39860:2;39840:18;;;39833:30;39899:34;39879:18;;;39872:62;39970:34;39950:18;;;39943:62;40042:12;40021:19;;;40014:41;40072:19;;7215:143:203;39619:478:357;7215:143:203;7488:1;7479:11;;7473:18;7455:1;7451:19;;7446:3;7442:29;7438:54;7537:2;7528:11;;7520:96;;;;;;;40304:2:357;7520:96:203;;;40286:21:357;40343:2;40323:18;;;40316:30;40382:34;40362:18;;;40355:62;40453:34;40433:18;;;40426:62;40525:10;40504:19;;;40497:39;40553:19;;7520:96:203;40102:476:357;7520:96:203;7669:20;7683:6;7669:11;:20;:::i;:::-;7656:10;;:33;7631:168;;;;;;;40785:2:357;7631:168:203;;;40767:21:357;40824:2;40804:18;;;40797:30;40863:34;40843:18;;;40836:62;40934:34;40914:18;;;40907:62;41006:14;40985:19;;;40978:43;41038:19;;7631:168:203;40583:480:357;7631:168:203;7822:15;7826:11;7822:1;:15;:::i;:::-;7814:55;-1:-1:-1;7839:6:203;-1:-1:-1;7847:21:203;;-1:-1:-1;7814:55:203;;-1:-1:-1;;;;7814:55:203;6769:2550;7900:4;7890:6;:14;7886:1433;;8003:15;8021:13;8030:4;8021:6;:13;:::i;:::-;8003:31;;8070:7;8057:3;:10;;;:20;8049:107;;;;;;;41270:2:357;8049:107:203;;;41252:21:357;41309:2;41289:18;;;41282:30;41348:34;41328:18;;;41321:62;41419:34;41399:18;;;41392:62;41491:12;41470:19;;;41463:41;41521:19;;8049:107:203;41068:478:357;8049:107:203;8179:1;;-1:-1:-1;8182:7:203;-1:-1:-1;8179:1:203;;-1:-1:-1;8171:42:203;;-1:-1:-1;;8171:42:203;7886:1433;8270:20;8293:13;8302:4;8293:6;:13;:::i;:::-;8270:36;;8359:12;8346:3;:10;;;:25;8321:161;;;;;;;41753:2:357;8321:161:203;;;41735:21:357;41792:2;41772:18;;;41765:30;41831:34;41811:18;;;41804:62;41902:34;41882:18;;;41875:62;41974:15;41953:19;;;41946:44;42007:19;;8321:161:203;41551:481:357;8321:161:203;8604:1;8595:11;;8589:18;8609:14;8585:39;8497:25;8677:26;;;8652:141;;;;;;;42239:2:357;8652:141:203;;;42221:21:357;42278:2;42258:18;;;42251:30;42317:34;42297:18;;;42290:62;42388:34;42368:18;;;42361:62;42460:10;42439:19;;;42432:39;42488:19;;8652:141:203;42037:476:357;8652:141:203;8926:1;8917:11;;8911:18;8892:1;8888:20;;8883:3;8879:30;8875:55;8976:2;8966:12;;8958:95;;;;;;;42720:2:357;8958:95:203;;;42702:21:357;42759:2;42739:18;;;42732:30;42798:34;42778:18;;;42771:62;42869:34;42849:18;;;42842:62;42941:8;42920:19;;;42913:37;42967:19;;8958:95:203;42518:474:357;8958:95:203;9106:22;9121:7;9106:12;:22;:::i;:::-;9093:10;;:35;9068:168;;;;;;;43199:2:357;9068:168:203;;;43181:21:357;43238:2;43218:18;;;43211:30;43277:34;43257:18;;;43250:62;43348:34;43328:18;;;43321:62;43420:12;43399:19;;;43392:41;43450:19;;9068:168:203;42997:478:357;9068:168:203;9259:16;9263:12;9259:1;:16;:::i;:::-;9251:57;-1:-1:-1;9277:7:203;-1:-1:-1;9286:21:203;;-1:-1:-1;9251:57:203;;-1:-1:-1;;;;9251:57:203;5246:4079;;;;;;:::o;9585:737::-;9676:17;9722:7;9712:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9712:18:203;-1:-1:-1;9705:25:203;-1:-1:-1;9740:54:203;;9772:11;9740:54;10010:11;10024:36;10053:7;10045:4;10024:36;:::i;:::-;10010:50;;10115:2;10109:4;10105:13;10140:1;10154:87;10168:7;10165:1;10162:14;10154:87;;;10226:11;;;10220:18;10206:12;;;10199:40;10191:2;10184:10;10154:87;;;10264:7;10261:1;10258:14;10255:51;;;10302:1;10292:7;10286:4;10282:18;10275:29;10255:51;;;10079:237;9585:737;;;;;:::o;4847:137::-;4912:17;4948:29;4954:3;:7;;;4963:1;4966:3;:10;;;4948:5;:29::i;660:2816:191:-;752:12;824:7;808;818:2;808:12;:23;;800:50;;;;;;;43682:2:357;800:50:191;;;43664:21:357;43721:2;43701:18;;;43694:30;43760:16;43740:18;;;43733:44;43794:18;;800:50:191;43480:338:357;800:50:191;892:6;881:7;872:6;:16;:26;;864:53;;;;;;;43682:2:357;864:53:191;;;43664:21:357;43721:2;43701:18;;;43694:30;43760:16;43740:18;;;43733:44;43794:18;;864:53:191;43480:338:357;864:53:191;965:7;956:6;:16;939:6;:13;:33;;931:63;;;;;;;44025:2:357;931:63:191;;;44007:21:357;44064:2;44044:18;;;44037:30;44103:19;44083:18;;;44076:47;44140:18;;931:63:191;43823:341:357;931:63:191;1015:22;1078:15;;1106:1931;;;;3178:4;3172:11;3159:24;;3365:1;3354:9;3347:20;3413:4;3402:9;3398:20;3392:4;3385:34;1071:2362;;1106:1931;1288:4;1282:11;1269:24;;1947:2;1938:7;1934:16;2329:9;2322:17;2316:4;2312:28;2300:9;2289;2285:25;2281:60;2377:7;2373:2;2369:16;2629:6;2615:9;2608:17;2602:4;2598:28;2586:9;2578:6;2574:22;2570:57;2566:70;2403:389;2662:3;2658:2;2655:11;2403:389;;;2780:9;;2769:21;;2703:4;2695:13;;;;2735;2403:389;;;-1:-1:-1;;2810:26:191;;;3018:2;3001:11;3014:7;2997:25;2991:4;2984:39;-1:-1:-1;1071:2362:191;-1:-1:-1;3460:9:191;660:2816;-1:-1:-1;;;;660:2816:191:o;1298:390:203:-;-1:-1:-1;;;;;;;;;;;;;;;;;1453:1:203;1440:3;:10;:14;1432:101;;;;;;;37875:2:357;1432:101:203;;;37857:21:357;37914:2;37894:18;;;37887:30;37953:34;37933:18;;;37926:62;38024:34;38004:18;;;37997:62;38096:12;38075:19;;;38068:41;38126:19;;1432:101:203;37673:478:357;1432:101:203;-1:-1:-1;1640:41:203;;;;;;;;;1658:10;;1640:41;;1610:2;1601:12;;;1640:41;;;;;;;;1298:390::o;1840:1740::-;1901:21;1935:18;1955;1975:20;1999:18;2013:3;1999:13;:18::i;:::-;1934:83;;-1:-1:-1;1934:83:203;-1:-1:-1;1934:83:203;-1:-1:-1;2048:21:203;2036:8;:33;;;;;;;;:::i;:::-;;2028:102;;;;;;;44371:2:357;2028:102:203;;;44353:21:357;44410:2;44390:18;;;44383:30;44449:34;44429:18;;;44422:62;44520:26;44500:18;;;44493:54;44564:19;;2028:102:203;44169:420:357;2028:102:203;2176:10;;2149:23;2162:10;2149;:23;:::i;:::-;:37;2141:100;;;;;;;44796:2:357;2141:100:203;;;44778:21:357;44835:2;44815:18;;;44808:30;44874:34;44854:18;;;44847:62;44945:20;44925:18;;;44918:48;44983:19;;2141:100:203;44594:414:357;2141:100:203;2651:30;;;1123:2;2651:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2651:30:203;;;;;;;;;;;;;;-1:-1:-1;2644:37:203;-1:-1:-1;2692:17:203;2740:10;2760:681;2776:10;;2767:19;;2760:681;;;2803:18;2823;2846:150;2877:105;;;;;;;;2908:6;2895:3;:10;;;:19;;;;:::i;:::-;2877:105;;;;2972:6;2961:3;:7;;;2940:38;;;;:::i;:::-;2877:105;;2846:13;:150::i;:::-;2802:194;;;;;3201:153;;;;;;;;3248:10;3235;:23;;;;:::i;:::-;3201:153;;;;3332:6;3321:3;:7;;;3300:38;;;;:::i;:::-;3201:153;;;3183:4;3188:9;3183:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3369:14;3382:1;3369:14;;:::i;:::-;;-1:-1:-1;3407:23:203;3420:10;3407;:23;:::i;:::-;3397:33;;;;:::i;:::-;;;2788:653;;2760:681;;;-1:-1:-1;3541:23:203;;-1:-1:-1;3548:4:203;;1840:1740;-1:-1:-1;;;1840:1740:203:o;753:184:357:-;805:77;802:1;795:88;902:4;899:1;892:15;926:4;923:1;916:15;942:334;1013:2;1007:9;1069:2;1059:13;;1074:66;1055:86;1043:99;;1172:18;1157:34;;1193:22;;;1154:62;1151:88;;;1219:18;;:::i;:::-;1255:2;1248:22;942:334;;-1:-1:-1;942:334:357:o;1281:154::-;1367:42;1360:5;1356:54;1349:5;1346:65;1336:93;;1425:1;1422;1415:12;1440:589;1482:5;1535:3;1528:4;1520:6;1516:17;1512:27;1502:55;;1553:1;1550;1543:12;1502:55;1589:6;1576:20;1615:18;1611:2;1608:26;1605:52;;;1637:18;;:::i;:::-;1681:114;1789:4;1720:66;1713:4;1709:2;1705:13;1701:86;1697:97;1681:114;:::i;:::-;1820:2;1811:7;1804:19;1866:3;1859:4;1854:2;1846:6;1842:15;1838:26;1835:35;1832:55;;;1883:1;1880;1873:12;1832:55;1948:2;1941:4;1933:6;1929:17;1922:4;1913:7;1909:18;1896:55;1996:1;1971:16;;;1989:4;1967:27;1960:38;;;;1975:7;1440:589;-1:-1:-1;;;1440:589:357:o;2034:1032::-;2102:5;2150:4;2138:9;2133:3;2129:19;2125:30;2122:50;;;2168:1;2165;2158:12;2122:50;2201:2;2195:9;2243:4;2235:6;2231:17;2267:18;2335:6;2323:10;2320:22;2315:2;2303:10;2300:18;2297:46;2294:72;;;2346:18;;:::i;:::-;2386:10;2382:2;2375:22;2415:6;2406:15;;2458:9;2445:23;2437:6;2430:39;2521:2;2510:9;2506:18;2493:32;2478:47;;2534:33;2559:7;2534:33;:::i;:::-;2600:7;2595:2;2587:6;2583:15;2576:32;2660:2;2649:9;2645:18;2632:32;2617:47;;2673:33;2698:7;2673:33;:::i;:::-;2739:7;2734:2;2726:6;2722:15;2715:32;2808:2;2797:9;2793:18;2780:32;2775:2;2767:6;2763:15;2756:57;2875:3;2864:9;2860:19;2847:33;2841:3;2833:6;2829:16;2822:59;2932:3;2921:9;2917:19;2904:33;2890:47;;2960:2;2952:6;2949:14;2946:34;;;2976:1;2973;2966:12;2946:34;;3014:45;3055:3;3046:6;3035:9;3031:22;3014:45;:::i;:::-;3008:3;3000:6;2996:16;2989:71;;;2034:1032;;;;:::o;3071:510::-;3180:6;3188;3241:2;3229:9;3220:7;3216:23;3212:32;3209:52;;;3257:1;3254;3247:12;3209:52;3297:9;3284:23;3330:18;3322:6;3319:30;3316:50;;;3362:1;3359;3352:12;3316:50;3385:72;3449:7;3440:6;3429:9;3425:22;3385:72;:::i;:::-;3375:82;;;3507:2;3496:9;3492:18;3479:32;3520:31;3545:5;3520:31;:::i;:::-;3570:5;3560:15;;;3071:510;;;;;:::o;3817:270::-;3899:6;3952:2;3940:9;3931:7;3927:23;3923:32;3920:52;;;3968:1;3965;3958:12;3920:52;4007:9;3994:23;4026:31;4051:5;4026:31;:::i;4284:1175::-;4486:6;4494;4502;4510;4518;4562:9;4553:7;4549:23;4592:3;4588:2;4584:12;4581:32;;;4609:1;4606;4599:12;4581:32;4649:9;4636:23;4678:18;4719:2;4711:6;4708:14;4705:34;;;4735:1;4732;4725:12;4705:34;4758:72;4822:7;4813:6;4802:9;4798:22;4758:72;:::i;:::-;4748:82;;4877:2;4866:9;4862:18;4849:32;4839:42;;4974:3;4905:66;4901:2;4897:75;4893:85;4890:105;;;4991:1;4988;4981:12;4890:105;5029:2;5018:9;5014:18;5004:28;;5085:3;5074:9;5070:19;5057:33;5041:49;;5115:2;5105:8;5102:16;5099:36;;;5131:1;5128;5121:12;5099:36;5169:8;5158:9;5154:24;5144:34;;5216:7;5209:4;5205:2;5201:13;5197:27;5187:55;;5238:1;5235;5228:12;5187:55;5278:2;5265:16;5251:30;;5304:2;5296:6;5293:14;5290:34;;;5320:1;5317;5310:12;5290:34;;5373:7;5368:2;5358:6;5355:1;5351:14;5347:2;5343:23;5339:32;5336:45;5333:65;;;5394:1;5391;5384:12;5333:65;4284:1175;;;;-1:-1:-1;4284:1175:357;;-1:-1:-1;;;5425:2:357;5417:11;;5447:6;4284:1175::o;5669:180::-;5728:6;5781:2;5769:9;5760:7;5756:23;5752:32;5749:52;;;5797:1;5794;5787:12;5749:52;-1:-1:-1;5820:23:357;;5669:180;-1:-1:-1;5669:180:357:o;6036:258::-;6108:1;6118:113;6132:6;6129:1;6126:13;6118:113;;;6208:11;;;6202:18;6189:11;;;6182:39;6154:2;6147:10;6118:113;;;6249:6;6246:1;6243:13;6240:48;;;-1:-1:-1;;6284:1:357;6266:16;;6259:27;6036:258::o;6299:317::-;6341:3;6379:5;6373:12;6406:6;6401:3;6394:19;6422:63;6478:6;6471:4;6466:3;6462:14;6455:4;6448:5;6444:16;6422:63;:::i;:::-;6530:2;6518:15;6535:66;6514:88;6505:98;;;;6605:4;6501:109;;6299:317;-1:-1:-1;;6299:317:357:o;6621:220::-;6770:2;6759:9;6752:21;6733:4;6790:45;6831:2;6820:9;6816:18;6808:6;6790:45;:::i;6846:315::-;6914:6;6922;6975:2;6963:9;6954:7;6950:23;6946:32;6943:52;;;6991:1;6988;6981:12;6943:52;7027:9;7014:23;7004:33;;7087:2;7076:9;7072:18;7059:32;7100:31;7125:5;7100:31;:::i;7166:144::-;7274:10;7267:5;7263:22;7256:5;7253:33;7243:61;;7300:1;7297;7290:12;7315:300;7405:6;7458:2;7446:9;7437:7;7433:23;7429:32;7426:52;;;7474:1;7471;7464:12;7426:52;7513:9;7500:23;7532:53;7579:5;7532:53;:::i;7620:375::-;7720:6;7773:2;7761:9;7752:7;7748:23;7744:32;7741:52;;;7789:1;7786;7779:12;7741:52;7829:9;7816:23;7862:18;7854:6;7851:30;7848:50;;;7894:1;7891;7884:12;7848:50;7917:72;7981:7;7972:6;7961:9;7957:22;7917:72;:::i;:::-;7907:82;7620:375;-1:-1:-1;;;;7620:375:357:o;8000:800::-;8193:6;8201;8209;8217;8270:3;8258:9;8249:7;8245:23;8241:33;8238:53;;;8287:1;8284;8277:12;8238:53;8326:9;8313:23;8345:31;8370:5;8345:31;:::i;:::-;8395:5;-1:-1:-1;8452:2:357;8437:18;;8424:32;8465:33;8424:32;8465:33;:::i;:::-;8517:7;-1:-1:-1;8576:2:357;8561:18;;8548:32;8589:33;8548:32;8589:33;:::i;:::-;8641:7;-1:-1:-1;8700:2:357;8685:18;;8672:32;8713:55;8672:32;8713:55;:::i;:::-;8000:800;;;;-1:-1:-1;8000:800:357;;-1:-1:-1;;8000:800:357:o;8805:129::-;8890:18;8883:5;8879:30;8872:5;8869:41;8859:69;;8924:1;8921;8914:12;8939:245;8997:6;9050:2;9038:9;9029:7;9025:23;9021:32;9018:52;;;9066:1;9063;9056:12;9018:52;9105:9;9092:23;9124:30;9148:5;9124:30;:::i;9189:248::-;9257:6;9265;9318:2;9306:9;9297:7;9293:23;9289:32;9286:52;;;9334:1;9331;9324:12;9286:52;-1:-1:-1;;9357:23:357;;;9427:2;9412:18;;;9399:32;;-1:-1:-1;9189:248:357:o;10206:118::-;10292:5;10285:13;10278:21;10271:5;10268:32;10258:60;;10314:1;10311;10304:12;10329:799;10429:6;10437;10445;10453;10461;10514:3;10502:9;10493:7;10489:23;10485:33;10482:53;;;10531:1;10528;10521:12;10482:53;10570:9;10557:23;10589:31;10614:5;10589:31;:::i;:::-;10639:5;-1:-1:-1;10691:2:357;10676:18;;10663:32;;-1:-1:-1;10747:2:357;10732:18;;10719:32;10760;10719;10760;:::i;:::-;10811:7;-1:-1:-1;10870:2:357;10855:18;;10842:32;10883:30;10842:32;10883:30;:::i;:::-;10932:7;-1:-1:-1;10990:3:357;10975:19;;10962:33;11018:18;11007:30;;11004:50;;;11050:1;11047;11040:12;11004:50;11073:49;11114:7;11105:6;11094:9;11090:22;11073:49;:::i;:::-;11063:59;;;10329:799;;;;;;;;:::o;11392:642::-;11655:6;11650:3;11643:19;11692:6;11687:2;11682:3;11678:12;11671:28;11751:66;11742:6;11737:3;11733:16;11729:89;11724:2;11719:3;11715:12;11708:111;11872:6;11865:14;11858:22;11853:3;11849:32;11844:2;11839:3;11835:12;11828:54;11625:3;11911:6;11905:13;11927:60;11980:6;11975:2;11970:3;11966:12;11961:2;11953:6;11949:15;11927:60;:::i;:::-;12007:16;;;;12025:2;12003:25;;11392:642;-1:-1:-1;;;;;;11392:642:357:o;12694:251::-;12764:6;12817:2;12805:9;12796:7;12792:23;12788:32;12785:52;;;12833:1;12830;12823:12;12785:52;12865:9;12859:16;12884:31;12909:5;12884:31;:::i;13382:626::-;13556:6;13564;13572;13625:2;13613:9;13604:7;13600:23;13596:32;13593:52;;;13641:1;13638;13631:12;13593:52;13673:9;13667:16;13692:53;13739:5;13692:53;:::i;:::-;13814:2;13799:18;;13793:25;13764:5;;-1:-1:-1;13827:32:357;13793:25;13827:32;:::i;:::-;13930:2;13915:18;;13909:25;13878:7;;-1:-1:-1;13943:33:357;13909:25;13943:33;:::i;:::-;13995:7;13985:17;;;13382:626;;;;;:::o;14013:212::-;14111:6;14164:2;14152:9;14143:7;14139:23;14135:32;14132:52;;;14180:1;14177;14170:12;14132:52;-1:-1:-1;14203:16:357;;14013:212;-1:-1:-1;14013:212:357:o;14632:648::-;14726:6;14779:3;14767:9;14758:7;14754:23;14750:33;14747:53;;;14796:1;14793;14786:12;14747:53;14829:2;14823:9;14871:3;14863:6;14859:16;14941:6;14929:10;14926:22;14905:18;14893:10;14890:34;14887:62;14884:88;;;14952:18;;:::i;:::-;14992:10;14988:2;14981:22;;15040:9;15027:23;15019:6;15012:39;15112:2;15101:9;15097:18;15084:32;15079:2;15071:6;15067:15;15060:57;15178:2;15167:9;15163:18;15150:32;15145:2;15137:6;15133:15;15126:57;15244:2;15233:9;15229:18;15216:32;15211:2;15203:6;15199:15;15192:57;15268:6;15258:16;;;14632:648;;;;:::o;15695:184::-;15747:77;15744:1;15737:88;15844:4;15841:1;15834:15;15868:4;15865:1;15858:15;15884:277;15971:6;16024:2;16012:9;16003:7;15999:23;15995:32;15992:52;;;16040:1;16037;16030:12;15992:52;16072:9;16066:16;16111:1;16104:5;16101:12;16091:40;;16127:1;16124;16117:12;17028:934;17164:9;17198:18;17239:2;17231:6;17228:14;17225:40;;;17245:18;;:::i;:::-;17291:6;17288:1;17284:14;17317:4;17341:28;17365:2;17361;17357:11;17341:28;:::i;:::-;17403:19;;;17473:14;;;;17438:12;;;;17510:14;17499:26;;17496:46;;;17538:1;17535;17528:12;17496:46;17562:5;17576:353;17592:6;17587:3;17584:15;17576:353;;;17678:3;17665:17;17714:2;17701:11;17698:19;17695:109;;;17758:1;17787:2;17783;17776:14;17695:109;17829:57;17871:14;17857:11;17850:5;17846:23;17829:57;:::i;:::-;17817:70;;-1:-1:-1;17907:12:357;;;;17609;;17576:353;;;-1:-1:-1;17951:5:357;17028:934;-1:-1:-1;;;;;;;17028:934:357:o;18386:245::-;18453:6;18506:2;18494:9;18485:7;18481:23;18477:32;18474:52;;;18522:1;18519;18512:12;18474:52;18554:9;18548:16;18573:28;18595:5;18573:28;:::i;19540:282::-;19642:6;19695:2;19683:9;19674:7;19670:23;19666:32;19663:52;;;19711:1;19708;19701:12;19663:52;19743:9;19737:16;19762:30;19786:5;19762:30;:::i;20314:184::-;20366:77;20363:1;20356:88;20463:4;20460:1;20453:15;20487:4;20484:1;20477:15;20503:125;20543:4;20571:1;20568;20565:8;20562:34;;;20576:18;;:::i;:::-;-1:-1:-1;20613:9:357;;20503:125::o;21478:304::-;21579:6;21632:2;21620:9;21611:7;21607:23;21603:32;21600:52;;;21648:1;21645;21638:12;21600:52;21680:9;21674:16;21699:53;21746:5;21699:53;:::i;23718:270::-;23757:7;23789:18;23834:2;23831:1;23827:10;23864:2;23861:1;23857:10;23920:3;23916:2;23912:12;23907:3;23904:21;23897:3;23890:11;23883:19;23879:47;23876:73;;;23929:18;;:::i;:::-;23969:13;;23718:270;-1:-1:-1;;;;23718:270:357:o;23993:236::-;24032:3;24060:18;24105:2;24102:1;24098:10;24135:2;24132:1;24128:10;24166:3;24162:2;24158:12;24153:3;24150:21;24147:47;;;24174:18;;:::i;:::-;24210:13;;23993:236;-1:-1:-1;;;;23993:236:357:o;24234:184::-;24286:77;24283:1;24276:88;24383:4;24380:1;24373:15;24407:4;24404:1;24397:15;24423:308;24462:1;24488;24478:35;;24493:18;;:::i;:::-;24610:66;24607:1;24604:73;24535:66;24532:1;24529:73;24525:153;24522:179;;;24681:18;;:::i;:::-;-1:-1:-1;24715:10:357;;24423:308::o;24736:369::-;24775:4;24811:1;24808;24804:9;24920:1;24852:66;24848:74;24845:1;24841:82;24836:2;24829:10;24825:99;24822:125;;;24927:18;;:::i;:::-;25046:1;24978:66;24974:74;24971:1;24967:82;24963:2;24959:91;24956:117;;;25053:18;;:::i;:::-;-1:-1:-1;;25090:9:357;;24736:369::o;25110:655::-;25149:7;25181:66;25273:1;25270;25266:9;25301:1;25298;25294:9;25346:1;25342:2;25338:10;25335:1;25332:17;25327:2;25323;25319:11;25315:35;25312:61;;;25353:18;;:::i;:::-;25392:66;25484:1;25481;25477:9;25531:1;25527:2;25522:11;25519:1;25515:19;25510:2;25506;25502:11;25498:37;25495:63;;;25538:18;;:::i;:::-;25584:1;25581;25577:9;25567:19;;25631:1;25627:2;25622:11;25619:1;25615:19;25610:2;25606;25602:11;25598:37;25595:63;;;25638:18;;:::i;:::-;25703:1;25699:2;25694:11;25691:1;25687:19;25682:2;25678;25674:11;25670:37;25667:63;;;25710:18;;:::i;:::-;-1:-1:-1;;;25750:9:357;;;;;25110:655;-1:-1:-1;;;25110:655:357:o;25770:367::-;25809:3;25844:1;25841;25837:9;25953:1;25885:66;25881:74;25878:1;25874:82;25869:2;25862:10;25858:99;25855:125;;;25960:18;;:::i;:::-;26079:1;26011:66;26007:74;26004:1;26000:82;25996:2;25992:91;25989:117;;;26086:18;;:::i;:::-;-1:-1:-1;;26122:9:357;;25770:367::o;26142:228::-;26182:7;26308:1;26240:66;26236:74;26233:1;26230:81;26225:1;26218:9;26211:17;26207:105;26204:131;;;26315:18;;:::i;:::-;-1:-1:-1;26355:9:357;;26142:228::o;26375:120::-;26415:1;26441;26431:35;;26446:18;;:::i;:::-;-1:-1:-1;26480:9:357;;26375:120::o;26500:656::-;26787:6;26776:9;26769:25;26750:4;26813:42;26903:2;26895:6;26891:15;26886:2;26875:9;26871:18;26864:43;26955:2;26947:6;26943:15;26938:2;26927:9;26923:18;26916:43;;26995:6;26990:2;26979:9;26975:18;26968:34;27039:6;27033:3;27022:9;27018:19;27011:35;27083:3;27077;27066:9;27062:19;27055:32;27104:46;27145:3;27134:9;27130:19;27122:6;27104:46;:::i;:::-;27096:54;26500:656;-1:-1:-1;;;;;;;;26500:656:357:o;27969:160::-;28046:13;;28099:4;28088:16;;28078:27;;28068:55;;28119:1;28116;28109:12;28068:55;27969:160;;;:::o;28134:1203::-;28237:6;28290:3;28278:9;28269:7;28265:23;28261:33;28258:53;;;28307:1;28304;28297:12;28258:53;28340:2;28334:9;28382:3;28374:6;28370:16;28452:6;28440:10;28437:22;28416:18;28404:10;28401:34;28398:62;28395:88;;;28463:18;;:::i;:::-;28499:2;28492:22;28536:16;;28561:53;28536:16;28561:53;:::i;:::-;28623:21;;28677:47;28720:2;28705:18;;28677:47;:::i;:::-;28672:2;28664:6;28660:15;28653:72;28758:47;28801:2;28790:9;28786:18;28758:47;:::i;:::-;28753:2;28745:6;28741:15;28734:72;28851:2;28840:9;28836:18;28830:25;28864:55;28911:7;28864:55;:::i;:::-;28947:2;28935:15;;28928:32;29005:3;28990:19;;28984:26;29019:55;28984:26;29019:55;:::i;:::-;29102:3;29090:16;;29083:33;29161:3;29146:19;;29140:26;29210:34;29197:48;;29185:61;;29175:89;;29260:1;29257;29250:12;29175:89;29292:3;29280:16;;29273:33;29284:6;28134:1203;-1:-1:-1;;;28134:1203:357:o;29342:195::-;29381:3;29412:66;29405:5;29402:77;29399:103;;29482:18;;:::i;:::-;-1:-1:-1;29529:1:357;29518:13;;29342:195::o;30079:184::-;30131:77;30128:1;30121:88;30228:4;30225:1;30218:15;30252:4;30249:1;30242:15;31856:128;31896:3;31927:1;31923:6;31920:1;31917:13;31914:39;;;31933:18;;:::i;:::-;-1:-1:-1;31969:9:357;;31856:128::o;32844:157::-;32874:1;32908:4;32905:1;32901:12;32932:3;32922:37;;32939:18;;:::i;:::-;32991:3;32984:4;32981:1;32977:12;32973:22;32968:27;;;32844:157;;;;:::o;33006:195::-;33044:4;33081;33078:1;33074:12;33113:4;33110:1;33106:12;33138:3;33133;33130:12;33127:38;;;33145:18;;:::i;:::-;33182:13;;;33006:195;-1:-1:-1;;;33006:195:357:o","linkReferences":{},"immutableReferences":{"87151":[{"start":1594,"length":32},{"start":5764,"length":32}],"87154":[{"start":1219,"length":32},{"start":6726,"length":32}]}},"methodIdentifiers":{"blacklistDisputeGame(address)":"7d6be8dc","checkWithdrawal(bytes32,address)":"71c1566e","depositTransaction(address,uint256,uint64,bool,bytes)":"e9e05c42","disputeGameBlacklist(address)":"45884d32","disputeGameFactory()":"f2b4e617","disputeGameFinalityDelaySeconds()":"952b2797","donateETH()":"8b4c40b0","finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)":"43ca1c50","finalizedWithdrawals(bytes32)":"a14238e7","guardian()":"452a9320","initialize(address,address,address,uint32)":"8e819e54","l2Sender()":"9bf62d82","minimumGasLimit(uint64)":"a35d99df","numProofSubmitters(bytes32)":"513747ab","params()":"cff0ab96","paused()":"5c975abb","proofMaturityDelaySeconds()":"bf653a5c","proofSubmitters(bytes32,uint256)":"a3860f48","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f","provenWithdrawals(bytes32,address)":"bb2c727e","respectedGameType()":"3c9f397c","respectedGameTypeUpdatedAt()":"4fd0434c","setRespectedGameType(uint32)":"7fc48504","superchainConfig()":"35e80ab3","systemConfig()":"33d7e2bd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proofMaturityDelaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_disputeGameFinalityDelaySeconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BadTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasEstimation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LargeCalldata\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SmallGasLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"opaqueData\",\"type\":\"bytes\"}],\"name\":\"TransactionDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"WithdrawalProven\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"_disputeGame\",\"type\":\"address\"}],\"name\":\"blacklistDisputeGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_withdrawalHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proofSubmitter\",\"type\":\"address\"}],\"name\":\"checkWithdrawal\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isCreation\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"depositTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disputeGameBlacklist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputeGameFactory\",\"outputs\":[{\"internalType\":\"contract DisputeGameFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputeGameFinalityDelaySeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"donateETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_proofSubmitter\",\"type\":\"address\"}],\"name\":\"finalizeWithdrawalTransactionExternalProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract DisputeGameFactory\",\"name\":\"_disputeGameFactory\",\"type\":\"address\"},{\"internalType\":\"contract SystemConfig\",\"name\":\"_systemConfig\",\"type\":\"address\"},{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"},{\"internalType\":\"GameType\",\"name\":\"_initialRespectedGameType\",\"type\":\"uint32\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_byteCount\",\"type\":\"uint64\"}],\"name\":\"minimumGasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_withdrawalHash\",\"type\":\"bytes32\"}],\"name\":\"numProofSubmitters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"prevBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"prevBoughtGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNum\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofMaturityDelaySeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proofSubmitters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_disputeGameIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"provenWithdrawals\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"disputeGameProxy\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"respectedGameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"respectedGameTypeUpdatedAt\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"}],\"name\":\"setRespectedGameType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"systemConfig\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@title OptimismPortal2\",\"events\":{\"TransactionDeposited(address,address,uint256,bytes)\":{\"params\":{\"from\":\"Address that triggered the deposit transaction.\",\"opaqueData\":\"ABI encoded deposit data to be parsed off-chain.\",\"to\":\"Address that the deposit transaction is directed to.\",\"version\":\"Version of this deposit transaction event.\"}},\"WithdrawalFinalized(bytes32,bool)\":{\"params\":{\"success\":\"Whether the withdrawal transaction was successful.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}},\"WithdrawalProven(bytes32,address,address)\":{\"params\":{\"from\":\"Address that triggered the withdrawal transaction.\",\"to\":\"Address that the withdrawal transaction is directed to.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}}},\"kind\":\"dev\",\"methods\":{\"blacklistDisputeGame(address)\":{\"params\":{\"_disputeGame\":\"Dispute game to blacklist.\"}},\"checkWithdrawal(bytes32,address)\":{\"params\":{\"_proofSubmitter\":\"The submitter of the proof for the withdrawal hash\",\"_withdrawalHash\":\"Hash of the withdrawal to check.\"}},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"params\":{\"_data\":\"Data to trigger the recipient with.\",\"_gasLimit\":\"Amount of L2 gas to purchase by burning gas on L1.\",\"_isCreation\":\"Whether or not the transaction is a contract creation.\",\"_to\":\"Target address on L2.\",\"_value\":\"ETH value to send to the recipient.\"}},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"params\":{\"_tx\":\"Withdrawal transaction to finalize.\"}},\"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)\":{\"params\":{\"_proofSubmitter\":\"Address of the proof submitter.\",\"_tx\":\"Withdrawal transaction to finalize.\"}},\"guardian()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Address of the guardian.\"}},\"initialize(address,address,address,uint32)\":{\"params\":{\"_disputeGameFactory\":\"Contract of the DisputeGameFactory.\",\"_superchainConfig\":\"Contract of the SuperchainConfig.\",\"_systemConfig\":\"Contract of the SystemConfig.\"}},\"minimumGasLimit(uint64)\":{\"params\":{\"_byteCount\":\"Number of bytes in the calldata.\"},\"returns\":{\"_0\":\"The minimum gas limit for a deposit.\"}},\"numProofSubmitters(bytes32)\":{\"params\":{\"_withdrawalHash\":\"Hash of the withdrawal.\"},\"returns\":{\"_0\":\"The number of proof submitters for the withdrawal hash.\"}},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"params\":{\"_disputeGameIndex\":\"Index of the dispute game to prove the withdrawal against.\",\"_outputRootProof\":\"Inclusion proof of the L2ToL1MessagePasser contract's storage root.\",\"_tx\":\"Withdrawal transaction to finalize.\",\"_withdrawalProof\":\"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract.\"}},\"setRespectedGameType(uint32)\":{\"params\":{\"_gameType\":\"The game type to consult for output proposals.\"}}},\"stateVariables\":{\"disputeGameFactory\":{\"custom:network-specific\":\"\"},\"spacer_52_0_32\":{\"custom:legacy\":\"@custom:spacer provenWithdrawals\"},\"spacer_53_0_1\":{\"custom:legacy\":\"@custom:spacer paused\"},\"spacer_54_0_20\":{\"custom:legacy\":\"@custom:spacer l2Oracle\"},\"systemConfig\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"3.8.0\"}},\"version\":1},\"userdoc\":{\"errors\":{\"BadTarget()\":[{\"notice\":\"Error for when a deposit or withdrawal is to a bad target.\"}],\"CallPaused()\":[{\"notice\":\"Error for when a method cannot be called when paused. This could be renamed to `Paused` in the future, but it collides with the `Paused` event.\"}],\"GasEstimation()\":[{\"notice\":\"Error for special gas estimation.\"}],\"LargeCalldata()\":[{\"notice\":\"Error for when a deposit has too much calldata.\"}],\"OutOfGas()\":[{\"notice\":\"Error returned when too much gas resource is consumed.\"}],\"SmallGasLimit()\":[{\"notice\":\"Error for when a deposit has too small of a gas limit.\"}],\"Unauthorized()\":[{\"notice\":\"Error for an unauthorized CALLER.\"}]},\"events\":{\"TransactionDeposited(address,address,uint256,bytes)\":{\"notice\":\"Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2.\"},\"WithdrawalFinalized(bytes32,bool)\":{\"notice\":\"Emitted when a withdrawal transaction is finalized.\"},\"WithdrawalProven(bytes32,address,address)\":{\"notice\":\"Emitted when a withdrawal transaction is proven.\"}},\"kind\":\"user\",\"methods\":{\"blacklistDisputeGame(address)\":{\"notice\":\"Blacklists a dispute game. Should only be used in the event that a dispute game resolves incorrectly.\"},\"checkWithdrawal(bytes32,address)\":{\"notice\":\"Checks if a withdrawal can be finalized. This function will revert if the withdrawal cannot be finalized, and otherwise has no side-effects.\"},\"constructor\":{\"notice\":\"Constructs the OptimismPortal contract.\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"notice\":\"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience.\"},\"disputeGameBlacklist(address)\":{\"notice\":\"A mapping of dispute game addresses to whether or not they are blacklisted.\"},\"disputeGameFactory()\":{\"notice\":\"Address of the DisputeGameFactory.\"},\"disputeGameFinalityDelaySeconds()\":{\"notice\":\"Getter for the dispute game finality delay.\"},\"donateETH()\":{\"notice\":\"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock.\"},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"notice\":\"Finalizes a withdrawal transaction.\"},\"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)\":{\"notice\":\"Finalizes a withdrawal transaction, using an external proof submitter.\"},\"finalizedWithdrawals(bytes32)\":{\"notice\":\"A list of withdrawal hashes which have been successfully finalized.\"},\"guardian()\":{\"notice\":\"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead.\"},\"initialize(address,address,address,uint32)\":{\"notice\":\"Initializer.\"},\"l2Sender()\":{\"notice\":\"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction.\"},\"minimumGasLimit(uint64)\":{\"notice\":\"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility.\"},\"numProofSubmitters(bytes32)\":{\"notice\":\"External getter for the number of proof submitters for a withdrawal hash.\"},\"params()\":{\"notice\":\"EIP-1559 style gas parameters.\"},\"paused()\":{\"notice\":\"Getter for the current paused status.\"},\"proofMaturityDelaySeconds()\":{\"notice\":\"Getter for the proof maturity delay.\"},\"proofSubmitters(bytes32,uint256)\":{\"notice\":\"Mapping of withdrawal hashes to addresses that have submitted a proof for the withdrawal.\"},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"notice\":\"Proves a withdrawal transaction.\"},\"provenWithdrawals(bytes32,address)\":{\"notice\":\"A mapping of withdrawal hashes to proof submitters to `ProvenWithdrawal` data.\"},\"respectedGameType()\":{\"notice\":\"The game type that the OptimismPortal consults for output proposals.\"},\"respectedGameTypeUpdatedAt()\":{\"notice\":\"The timestamp at which the respected game type was last updated.\"},\"setRespectedGameType(uint32)\":{\"notice\":\"Sets the respected game type. Changing this value can alter the security properties of the system, depending on the new game's behavior.\"},\"superchainConfig()\":{\"notice\":\"Contract of the Superchain Config.\"},\"systemConfig()\":{\"notice\":\"Contract of the SystemConfig.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/OptimismPortal2.sol\":\"OptimismPortal2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e\",\"dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/OptimismPortal2.sol\":{\"keccak256\":\"0xcd1bb48f8005d9ed77120615d936441a8fd000b15bec1f32416f819999e4f0ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://251a0362b91185a1b53b4053651cc189e1411cdabc4003cbdc7f9efabbd7e22f\",\"dweb:/ipfs/QmfW9o4Pxa2SAbiohXRnqDEbpHWZeqFM4d9QmD3gJjFLQE\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce\",\"dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f\"]},\"src/dispute/DisputeGameFactory.sol\":{\"keccak256\":\"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f\",\"dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a\",\"dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd\",\"dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48\",\"dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046\",\"dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e\",\"dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961\",\"dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/PortalErrors.sol\":{\"keccak256\":\"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1\",\"dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\",\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_proofMaturityDelaySeconds","type":"uint256"},{"internalType":"uint256","name":"_disputeGameFinalityDelaySeconds","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"BadTarget"},{"inputs":[],"type":"error","name":"CallPaused"},{"inputs":[],"type":"error","name":"GasEstimation"},{"inputs":[],"type":"error","name":"LargeCalldata"},{"inputs":[],"type":"error","name":"OutOfGas"},{"inputs":[],"type":"error","name":"SmallGasLimit"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"version","type":"uint256","indexed":true},{"internalType":"bytes","name":"opaqueData","type":"bytes","indexed":false}],"type":"event","name":"TransactionDeposited","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":true},{"internalType":"bool","name":"success","type":"bool","indexed":false}],"type":"event","name":"WithdrawalFinalized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"WithdrawalProven","anonymous":false},{"inputs":[{"internalType":"contract IDisputeGame","name":"_disputeGame","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"blacklistDisputeGame"},{"inputs":[{"internalType":"bytes32","name":"_withdrawalHash","type":"bytes32"},{"internalType":"address","name":"_proofSubmitter","type":"address"}],"stateMutability":"view","type":"function","name":"checkWithdrawal"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint64","name":"_gasLimit","type":"uint64"},{"internalType":"bool","name":"_isCreation","type":"bool"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositTransaction"},{"inputs":[{"internalType":"contract IDisputeGame","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"disputeGameBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"disputeGameFactory","outputs":[{"internalType":"contract DisputeGameFactory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"disputeGameFinalityDelaySeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"donateETH"},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"address","name":"_proofSubmitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransactionExternalProof"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"finalizedWithdrawals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract DisputeGameFactory","name":"_disputeGameFactory","type":"address"},{"internalType":"contract SystemConfig","name":"_systemConfig","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"},{"internalType":"GameType","name":"_initialRespectedGameType","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Sender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"_byteCount","type":"uint64"}],"stateMutability":"pure","type":"function","name":"minimumGasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"_withdrawalHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"numProofSubmitters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"params","outputs":[{"internalType":"uint128","name":"prevBaseFee","type":"uint128"},{"internalType":"uint64","name":"prevBoughtGas","type":"uint64"},{"internalType":"uint64","name":"prevBlockNum","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proofMaturityDelaySeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proofSubmitters","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_disputeGameIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"provenWithdrawals","outputs":[{"internalType":"contract IDisputeGame","name":"disputeGameProxy","type":"address"},{"internalType":"uint64","name":"timestamp","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"respectedGameType","outputs":[{"internalType":"GameType","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"respectedGameTypeUpdatedAt","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"setRespectedGameType"},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"systemConfig","outputs":[{"internalType":"contract SystemConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"blacklistDisputeGame(address)":{"params":{"_disputeGame":"Dispute game to blacklist."}},"checkWithdrawal(bytes32,address)":{"params":{"_proofSubmitter":"The submitter of the proof for the withdrawal hash","_withdrawalHash":"Hash of the withdrawal to check."}},"depositTransaction(address,uint256,uint64,bool,bytes)":{"params":{"_data":"Data to trigger the recipient with.","_gasLimit":"Amount of L2 gas to purchase by burning gas on L1.","_isCreation":"Whether or not the transaction is a contract creation.","_to":"Target address on L2.","_value":"ETH value to send to the recipient."}},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"params":{"_tx":"Withdrawal transaction to finalize."}},"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)":{"params":{"_proofSubmitter":"Address of the proof submitter.","_tx":"Withdrawal transaction to finalize."}},"guardian()":{"custom:legacy":"","returns":{"_0":"Address of the guardian."}},"initialize(address,address,address,uint32)":{"params":{"_disputeGameFactory":"Contract of the DisputeGameFactory.","_superchainConfig":"Contract of the SuperchainConfig.","_systemConfig":"Contract of the SystemConfig."}},"minimumGasLimit(uint64)":{"params":{"_byteCount":"Number of bytes in the calldata."},"returns":{"_0":"The minimum gas limit for a deposit."}},"numProofSubmitters(bytes32)":{"params":{"_withdrawalHash":"Hash of the withdrawal."},"returns":{"_0":"The number of proof submitters for the withdrawal hash."}},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"params":{"_disputeGameIndex":"Index of the dispute game to prove the withdrawal against.","_outputRootProof":"Inclusion proof of the L2ToL1MessagePasser contract's storage root.","_tx":"Withdrawal transaction to finalize.","_withdrawalProof":"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."}},"setRespectedGameType(uint32)":{"params":{"_gameType":"The game type to consult for output proposals."}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklistDisputeGame(address)":{"notice":"Blacklists a dispute game. Should only be used in the event that a dispute game resolves incorrectly."},"checkWithdrawal(bytes32,address)":{"notice":"Checks if a withdrawal can be finalized. This function will revert if the withdrawal cannot be finalized, and otherwise has no side-effects."},"constructor":{"notice":"Constructs the OptimismPortal contract."},"depositTransaction(address,uint256,uint64,bool,bytes)":{"notice":"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience."},"disputeGameBlacklist(address)":{"notice":"A mapping of dispute game addresses to whether or not they are blacklisted."},"disputeGameFactory()":{"notice":"Address of the DisputeGameFactory."},"disputeGameFinalityDelaySeconds()":{"notice":"Getter for the dispute game finality delay."},"donateETH()":{"notice":"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock."},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"notice":"Finalizes a withdrawal transaction."},"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)":{"notice":"Finalizes a withdrawal transaction, using an external proof submitter."},"finalizedWithdrawals(bytes32)":{"notice":"A list of withdrawal hashes which have been successfully finalized."},"guardian()":{"notice":"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead."},"initialize(address,address,address,uint32)":{"notice":"Initializer."},"l2Sender()":{"notice":"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction."},"minimumGasLimit(uint64)":{"notice":"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility."},"numProofSubmitters(bytes32)":{"notice":"External getter for the number of proof submitters for a withdrawal hash."},"params()":{"notice":"EIP-1559 style gas parameters."},"paused()":{"notice":"Getter for the current paused status."},"proofMaturityDelaySeconds()":{"notice":"Getter for the proof maturity delay."},"proofSubmitters(bytes32,uint256)":{"notice":"Mapping of withdrawal hashes to addresses that have submitted a proof for the withdrawal."},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"notice":"Proves a withdrawal transaction."},"provenWithdrawals(bytes32,address)":{"notice":"A mapping of withdrawal hashes to proof submitters to `ProvenWithdrawal` data."},"respectedGameType()":{"notice":"The game type that the OptimismPortal consults for output proposals."},"respectedGameTypeUpdatedAt()":{"notice":"The timestamp at which the respected game type was last updated."},"setRespectedGameType(uint32)":{"notice":"Sets the respected game type. Changing this value can alter the security properties of the system, depending on the new game's behavior."},"superchainConfig()":{"notice":"Contract of the Superchain Config."},"systemConfig()":{"notice":"Contract of the SystemConfig."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/OptimismPortal2.sol":"OptimismPortal2"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solady/src/utils/LibClone.sol":{"keccak256":"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4","urls":["bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e","dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/OptimismPortal2.sol":{"keccak256":"0xcd1bb48f8005d9ed77120615d936441a8fd000b15bec1f32416f819999e4f0ca","urls":["bzz-raw://251a0362b91185a1b53b4053651cc189e1411cdabc4003cbdc7f9efabbd7e22f","dweb:/ipfs/QmfW9o4Pxa2SAbiohXRnqDEbpHWZeqFM4d9QmD3gJjFLQE"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L1/SystemConfig.sol":{"keccak256":"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a","urls":["bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce","dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f"],"license":"MIT"},"src/dispute/DisputeGameFactory.sol":{"keccak256":"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f","urls":["bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f","dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b","urls":["bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a","dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6"],"license":"MIT"},"src/dispute/interfaces/IDisputeGameFactory.sol":{"keccak256":"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda","urls":["bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd","dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6","urls":["bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48","dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f","urls":["bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046","dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937","urls":["bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e","dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c","urls":["bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961","dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/PortalErrors.sol":{"keccak256":"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558","urls":["bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1","dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":88262,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"params","offset":0,"slot":"1","type":"t_struct(ResourceParams)88245_storage"},{"astId":88267,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)48_storage"},{"astId":87165,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"l2Sender","offset":0,"slot":"50","type":"t_address"},{"astId":87170,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"finalizedWithdrawals","offset":0,"slot":"51","type":"t_mapping(t_bytes32,t_bool)"},{"astId":87173,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"spacer_52_0_32","offset":0,"slot":"52","type":"t_bytes32"},{"astId":87176,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"spacer_53_0_1","offset":0,"slot":"53","type":"t_bool"},{"astId":87180,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"superchainConfig","offset":1,"slot":"53","type":"t_contract(SuperchainConfig)88793"},{"astId":87183,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"spacer_54_0_20","offset":0,"slot":"54","type":"t_address"},{"astId":87187,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"systemConfig","offset":0,"slot":"55","type":"t_contract(SystemConfig)89607"},{"astId":87191,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"disputeGameFactory","offset":0,"slot":"56","type":"t_contract(DisputeGameFactory)97682"},{"astId":87199,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"provenWithdrawals","offset":0,"slot":"57","type":"t_mapping(t_bytes32,t_mapping(t_address,t_struct(ProvenWithdrawal)87148_storage))"},{"astId":87205,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"disputeGameBlacklist","offset":0,"slot":"58","type":"t_mapping(t_contract(IDisputeGame)100327,t_bool)"},{"astId":87209,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"respectedGameType","offset":0,"slot":"59","type":"t_userDefinedValueType(GameType)103271"},{"astId":87212,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"respectedGameTypeUpdatedAt","offset":4,"slot":"59","type":"t_uint64"},{"astId":87218,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"proofSubmitters","offset":0,"slot":"60","type":"t_mapping(t_bytes32,t_array(t_address)dyn_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_uint256)48_storage":{"encoding":"inplace","label":"uint256[48]","numberOfBytes":"1536","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(DisputeGameFactory)97682":{"encoding":"inplace","label":"contract DisputeGameFactory","numberOfBytes":"20"},"t_contract(IDisputeGame)100327":{"encoding":"inplace","label":"contract IDisputeGame","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_contract(SystemConfig)89607":{"encoding":"inplace","label":"contract SystemConfig","numberOfBytes":"20"},"t_mapping(t_address,t_struct(ProvenWithdrawal)87148_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct OptimismPortal2.ProvenWithdrawal)","numberOfBytes":"32","value":"t_struct(ProvenWithdrawal)87148_storage"},"t_mapping(t_bytes32,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_mapping(t_address,t_struct(ProvenWithdrawal)87148_storage))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => struct OptimismPortal2.ProvenWithdrawal))","numberOfBytes":"32","value":"t_mapping(t_address,t_struct(ProvenWithdrawal)87148_storage)"},"t_mapping(t_contract(IDisputeGame)100327,t_bool)":{"encoding":"mapping","key":"t_contract(IDisputeGame)100327","label":"mapping(contract IDisputeGame => bool)","numberOfBytes":"32","value":"t_bool"},"t_struct(ProvenWithdrawal)87148_storage":{"encoding":"inplace","label":"struct OptimismPortal2.ProvenWithdrawal","numberOfBytes":"32","members":[{"astId":87145,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"disputeGameProxy","offset":0,"slot":"0","type":"t_contract(IDisputeGame)100327"},{"astId":87147,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"timestamp","offset":20,"slot":"0","type":"t_uint64"}]},"t_struct(ResourceParams)88245_storage":{"encoding":"inplace","label":"struct ResourceMetering.ResourceParams","numberOfBytes":"32","members":[{"astId":88240,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"prevBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":88242,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"prevBoughtGas","offset":16,"slot":"0","type":"t_uint64"},{"astId":88244,"contract":"src/L1/OptimismPortal2.sol:OptimismPortal2","label":"prevBlockNum","offset":24,"slot":"0","type":"t_uint64"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_userDefinedValueType(GameType)103271":{"encoding":"inplace","label":"GameType","numberOfBytes":"4"}}},"userdoc":{"version":1,"kind":"user","methods":{"blacklistDisputeGame(address)":{"notice":"Blacklists a dispute game. Should only be used in the event that a dispute game resolves incorrectly."},"checkWithdrawal(bytes32,address)":{"notice":"Checks if a withdrawal can be finalized. This function will revert if the withdrawal cannot be finalized, and otherwise has no side-effects."},"constructor":{"notice":"Constructs the OptimismPortal contract."},"depositTransaction(address,uint256,uint64,bool,bytes)":{"notice":"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience."},"disputeGameBlacklist(address)":{"notice":"A mapping of dispute game addresses to whether or not they are blacklisted."},"disputeGameFactory()":{"notice":"Address of the DisputeGameFactory."},"disputeGameFinalityDelaySeconds()":{"notice":"Getter for the dispute game finality delay."},"donateETH()":{"notice":"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock."},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"notice":"Finalizes a withdrawal transaction."},"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)":{"notice":"Finalizes a withdrawal transaction, using an external proof submitter."},"finalizedWithdrawals(bytes32)":{"notice":"A list of withdrawal hashes which have been successfully finalized."},"guardian()":{"notice":"Getter function for the address of the guardian. Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead."},"initialize(address,address,address,uint32)":{"notice":"Initializer."},"l2Sender()":{"notice":"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction."},"minimumGasLimit(uint64)":{"notice":"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility."},"numProofSubmitters(bytes32)":{"notice":"External getter for the number of proof submitters for a withdrawal hash."},"params()":{"notice":"EIP-1559 style gas parameters."},"paused()":{"notice":"Getter for the current paused status."},"proofMaturityDelaySeconds()":{"notice":"Getter for the proof maturity delay."},"proofSubmitters(bytes32,uint256)":{"notice":"Mapping of withdrawal hashes to addresses that have submitted a proof for the withdrawal."},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"notice":"Proves a withdrawal transaction."},"provenWithdrawals(bytes32,address)":{"notice":"A mapping of withdrawal hashes to proof submitters to `ProvenWithdrawal` data."},"respectedGameType()":{"notice":"The game type that the OptimismPortal consults for output proposals."},"respectedGameTypeUpdatedAt()":{"notice":"The timestamp at which the respected game type was last updated."},"setRespectedGameType(uint32)":{"notice":"Sets the respected game type. Changing this value can alter the security properties of the system, depending on the new game's behavior."},"superchainConfig()":{"notice":"Contract of the Superchain Config."},"systemConfig()":{"notice":"Contract of the SystemConfig."},"version()":{"notice":"Semantic version."}},"events":{"TransactionDeposited(address,address,uint256,bytes)":{"notice":"Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2."},"WithdrawalFinalized(bytes32,bool)":{"notice":"Emitted when a withdrawal transaction is finalized."},"WithdrawalProven(bytes32,address,address)":{"notice":"Emitted when a withdrawal transaction is proven."}},"errors":{"BadTarget()":[{"notice":"Error for when a deposit or withdrawal is to a bad target."}],"CallPaused()":[{"notice":"Error for when a method cannot be called when paused. This could be renamed to `Paused` in the future, but it collides with the `Paused` event."}],"GasEstimation()":[{"notice":"Error for special gas estimation."}],"LargeCalldata()":[{"notice":"Error for when a deposit has too much calldata."}],"OutOfGas()":[{"notice":"Error returned when too much gas resource is consumed."}],"SmallGasLimit()":[{"notice":"Error for when a deposit has too small of a gas limit."}],"Unauthorized()":[{"notice":"Error for an unauthorized CALLER."}]},"notice":"The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."},"devdoc":{"version":1,"kind":"dev","methods":{"blacklistDisputeGame(address)":{"params":{"_disputeGame":"Dispute game to blacklist."}},"checkWithdrawal(bytes32,address)":{"params":{"_proofSubmitter":"The submitter of the proof for the withdrawal hash","_withdrawalHash":"Hash of the withdrawal to check."}},"depositTransaction(address,uint256,uint64,bool,bytes)":{"params":{"_data":"Data to trigger the recipient with.","_gasLimit":"Amount of L2 gas to purchase by burning gas on L1.","_isCreation":"Whether or not the transaction is a contract creation.","_to":"Target address on L2.","_value":"ETH value to send to the recipient."}},"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":{"params":{"_tx":"Withdrawal transaction to finalize."}},"finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)":{"params":{"_proofSubmitter":"Address of the proof submitter.","_tx":"Withdrawal transaction to finalize."}},"guardian()":{"returns":{"_0":"Address of the guardian."}},"initialize(address,address,address,uint32)":{"params":{"_disputeGameFactory":"Contract of the DisputeGameFactory.","_superchainConfig":"Contract of the SuperchainConfig.","_systemConfig":"Contract of the SystemConfig."}},"minimumGasLimit(uint64)":{"params":{"_byteCount":"Number of bytes in the calldata."},"returns":{"_0":"The minimum gas limit for a deposit."}},"numProofSubmitters(bytes32)":{"params":{"_withdrawalHash":"Hash of the withdrawal."},"returns":{"_0":"The number of proof submitters for the withdrawal hash."}},"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":{"params":{"_disputeGameIndex":"Index of the dispute game to prove the withdrawal against.","_outputRootProof":"Inclusion proof of the L2ToL1MessagePasser contract's storage root.","_tx":"Withdrawal transaction to finalize.","_withdrawalProof":"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."}},"setRespectedGameType(uint32)":{"params":{"_gameType":"The game type to consult for output proposals."}}},"events":{"TransactionDeposited(address,address,uint256,bytes)":{"params":{"from":"Address that triggered the deposit transaction.","opaqueData":"ABI encoded deposit data to be parsed off-chain.","to":"Address that the deposit transaction is directed to.","version":"Version of this deposit transaction event."}},"WithdrawalFinalized(bytes32,bool)":{"params":{"success":"Whether the withdrawal transaction was successful.","withdrawalHash":"Hash of the withdrawal transaction."}},"WithdrawalProven(bytes32,address,address)":{"params":{"from":"Address that triggered the withdrawal transaction.","to":"Address that the withdrawal transaction is directed to.","withdrawalHash":"Hash of the withdrawal transaction."}}}},"ast":{"absolutePath":"src/L1/OptimismPortal2.sol","id":87972,"exportedSymbols":{"AddressAliasHelper":[111913],"BadTarget":[103969],"BondAmount":[103259],"CallPaused":[103990],"Claim":[103255],"ClaimHash":[103257],"Clock":[103267],"Constants":[103096],"DisputeGameFactory":[97682],"Duration":[103263],"GameId":[103265],"GameStatus":[103277],"GameType":[103271],"GameTypes":[103317],"GasEstimation":[103993],"Hash":[103253],"Hashing":[103936],"IDisputeGame":[100327],"ISemver":[109417],"Initializable":[49678],"LargeCalldata":[103972],"LibClaim":[101086],"LibClock":[101073],"LibDuration":[101099],"LibGameId":[100778],"LibGameType":[101151],"LibHash":[101112],"LibHashing":[100800],"LibPosition":[101018],"LibTimestamp":[101125],"LibVMStatus":[101138],"LocalPreimageKey":[103373],"NoValue":[103984],"OnlyCustomGasToken":[103981],"OptimismPortal2":[87971],"OutputRoot":[103283],"Position":[103269],"ResourceMetering":[88581],"SafeCall":[104213],"SecureMerkleTrie":[106033],"SmallGasLimit":[103975],"SuperchainConfig":[88793],"SystemConfig":[89607],"Timestamp":[103261],"TransferFailed":[103978],"Types":[104349],"Unauthorized":[103987],"VMStatus":[103273],"VMStatuses":[103351]},"nodeType":"SourceUnit","src":"32:24886:135","nodes":[{"id":87106,"nodeType":"PragmaDirective","src":"32:23:135","nodes":[],"literals":["solidity","0.8",".15"]},{"id":87108,"nodeType":"ImportDirective","src":"57:86:135","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":49679,"symbolAliases":[{"foreign":{"id":87107,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"66:13:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87110,"nodeType":"ImportDirective","src":"144:54:135","nodes":[],"absolutePath":"src/libraries/SafeCall.sol","file":"src/libraries/SafeCall.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":104214,"symbolAliases":[{"foreign":{"id":87109,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104213,"src":"153:8:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87113,"nodeType":"ImportDirective","src":"199:86:135","nodes":[],"absolutePath":"src/dispute/DisputeGameFactory.sol","file":"src/dispute/DisputeGameFactory.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":97683,"symbolAliases":[{"foreign":{"id":87111,"name":"DisputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97682,"src":"208:18:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":87112,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"228:12:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87115,"nodeType":"ImportDirective","src":"286:55:135","nodes":[],"absolutePath":"src/L1/SystemConfig.sol","file":"src/L1/SystemConfig.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":89608,"symbolAliases":[{"foreign":{"id":87114,"name":"SystemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89607,"src":"295:12:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87117,"nodeType":"ImportDirective","src":"342:63:135","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":87116,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"351:16:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87119,"nodeType":"ImportDirective","src":"406:56:135","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":87118,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"415:9:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87121,"nodeType":"ImportDirective","src":"463:48:135","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":87120,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"472:5:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87123,"nodeType":"ImportDirective","src":"512:52:135","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":103937,"symbolAliases":[{"foreign":{"id":87122,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"521:7:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87125,"nodeType":"ImportDirective","src":"565:75:135","nodes":[],"absolutePath":"src/libraries/trie/SecureMerkleTrie.sol","file":"src/libraries/trie/SecureMerkleTrie.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":106034,"symbolAliases":[{"foreign":{"id":87124,"name":"SecureMerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106033,"src":"574:16:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87127,"nodeType":"ImportDirective","src":"641:71:135","nodes":[],"absolutePath":"src/vendor/AddressAliasHelper.sol","file":"src/vendor/AddressAliasHelper.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":111914,"symbolAliases":[{"foreign":{"id":87126,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"650:18:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87129,"nodeType":"ImportDirective","src":"713:63:135","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":88582,"symbolAliases":[{"foreign":{"id":87128,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88581,"src":"722:16:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87131,"nodeType":"ImportDirective","src":"777:52:135","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":87130,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"786:7:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87133,"nodeType":"ImportDirective","src":"830:56:135","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":87132,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"839:9:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87134,"nodeType":"ImportDirective","src":"888:40:135","nodes":[],"absolutePath":"src/libraries/PortalErrors.sol","file":"src/libraries/PortalErrors.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":103994,"symbolAliases":[],"unitAlias":""},{"id":87135,"nodeType":"ImportDirective","src":"929:40:135","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":87972,"sourceUnit":103374,"symbolAliases":[],"unitAlias":""},{"id":87971,"nodeType":"ContractDefinition","src":"1310:23607:135","nodes":[{"id":87148,"nodeType":"StructDefinition","src":"1635:96:135","nodes":[],"canonicalName":"OptimismPortal2.ProvenWithdrawal","members":[{"constant":false,"id":87145,"mutability":"mutable","name":"disputeGameProxy","nameLocation":"1682:16:135","nodeType":"VariableDeclaration","scope":87148,"src":"1669:29:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":87144,"nodeType":"UserDefinedTypeName","pathNode":{"id":87143,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"1669:12:135"},"referencedDeclaration":100327,"src":"1669:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"},{"constant":false,"id":87147,"mutability":"mutable","name":"timestamp","nameLocation":"1715:9:135","nodeType":"VariableDeclaration","scope":87148,"src":"1708:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87146,"name":"uint64","nodeType":"ElementaryTypeName","src":"1708:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"ProvenWithdrawal","nameLocation":"1642:16:135","scope":87971,"visibility":"public"},{"id":87151,"nodeType":"VariableDeclaration","src":"1841:55:135","nodes":[],"constant":false,"documentation":{"id":87149,"nodeType":"StructuredDocumentation","src":"1737:99:135","text":"@notice The delay between when a withdrawal transaction is proven and when it may be finalized."},"mutability":"immutable","name":"PROOF_MATURITY_DELAY_SECONDS","nameLocation":"1868:28:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1841:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":87154,"nodeType":"VariableDeclaration","src":"2043:62:135","nodes":[],"constant":false,"documentation":{"id":87152,"nodeType":"StructuredDocumentation","src":"1903:135:135","text":"@notice The delay between when a dispute game is resolved and when a withdrawal proven against it may be\n finalized."},"mutability":"immutable","name":"DISPUTE_GAME_FINALITY_DELAY_SECONDS","nameLocation":"2070:35:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87153,"name":"uint256","nodeType":"ElementaryTypeName","src":"2043:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":87158,"nodeType":"VariableDeclaration","src":"2158:45:135","nodes":[],"constant":true,"documentation":{"id":87155,"nodeType":"StructuredDocumentation","src":"2112:41:135","text":"@notice Version of the deposit event."},"mutability":"constant","name":"DEPOSIT_VERSION","nameLocation":"2184:15:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":87157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":87162,"nodeType":"VariableDeclaration","src":"2299:60:135","nodes":[],"constant":true,"documentation":{"id":87159,"nodeType":"StructuredDocumentation","src":"2210:84:135","text":"@notice The L2 gas limit set when eth is deposited using the receive() function."},"mutability":"constant","name":"RECEIVE_DEFAULT_GAS_LIMIT","nameLocation":"2324:25:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87160,"name":"uint64","nodeType":"ElementaryTypeName","src":"2299:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130305f303030","id":87161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2352:7:135","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"visibility":"internal"},{"id":87165,"nodeType":"VariableDeclaration","src":"2615:23:135","nodes":[],"constant":false,"documentation":{"id":87163,"nodeType":"StructuredDocumentation","src":"2366:244:135","text":"@notice Address of the L2 account which initiated a withdrawal in this transaction.\n If the of this variable is the default L2 sender address, then we are NOT inside of\n a call to finalizeWithdrawalTransaction."},"functionSelector":"9bf62d82","mutability":"mutable","name":"l2Sender","nameLocation":"2630:8:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87164,"name":"address","nodeType":"ElementaryTypeName","src":"2615:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":87170,"nodeType":"VariableDeclaration","src":"2729:52:135","nodes":[],"constant":false,"documentation":{"id":87166,"nodeType":"StructuredDocumentation","src":"2645:79:135","text":"@notice A list of withdrawal hashes which have been successfully finalized."},"functionSelector":"a14238e7","mutability":"mutable","name":"finalizedWithdrawals","nameLocation":"2761:20:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":87169,"keyType":{"id":87167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2737:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2729:24:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":87168,"name":"bool","nodeType":"ElementaryTypeName","src":"2748:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":87173,"nodeType":"VariableDeclaration","src":"2930:30:135","nodes":[],"constant":false,"documentation":{"id":87171,"nodeType":"StructuredDocumentation","src":"2788:137:135","text":"@custom:legacy\n @custom:spacer provenWithdrawals\n @notice Spacer taking up the legacy `provenWithdrawals` mapping slot."},"mutability":"mutable","name":"spacer_52_0_32","nameLocation":"2946:14:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2930:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":87176,"nodeType":"VariableDeclaration","src":"3072:26:135","nodes":[],"constant":false,"documentation":{"id":87174,"nodeType":"StructuredDocumentation","src":"2967:100:135","text":"@custom:legacy\n @custom:spacer paused\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_53_0_1","nameLocation":"3085:13:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87175,"name":"bool","nodeType":"ElementaryTypeName","src":"3072:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":87180,"nodeType":"VariableDeclaration","src":"3156:40:135","nodes":[],"constant":false,"documentation":{"id":87177,"nodeType":"StructuredDocumentation","src":"3105:46:135","text":"@notice Contract of the Superchain Config."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"3180:16:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":87179,"nodeType":"UserDefinedTypeName","pathNode":{"id":87178,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"3156:16:135"},"referencedDeclaration":88793,"src":"3156:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":87183,"nodeType":"VariableDeclaration","src":"3327:30:135","nodes":[],"constant":false,"documentation":{"id":87181,"nodeType":"StructuredDocumentation","src":"3203:119:135","text":"@custom:legacy\n @custom:spacer l2Oracle\n @notice Spacer taking up the legacy `l2Oracle` address slot."},"mutability":"mutable","name":"spacer_54_0_20","nameLocation":"3343:14:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87182,"name":"address","nodeType":"ElementaryTypeName","src":"3327:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":87187,"nodeType":"VariableDeclaration","src":"3443:32:135","nodes":[],"constant":false,"documentation":{"id":87184,"nodeType":"StructuredDocumentation","src":"3364:74:135","text":"@notice Contract of the SystemConfig.\n @custom:network-specific"},"functionSelector":"33d7e2bd","mutability":"mutable","name":"systemConfig","nameLocation":"3463:12:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},"typeName":{"id":87186,"nodeType":"UserDefinedTypeName","pathNode":{"id":87185,"name":"SystemConfig","nodeType":"IdentifierPath","referencedDeclaration":89607,"src":"3443:12:135"},"referencedDeclaration":89607,"src":"3443:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"visibility":"public"},{"id":87191,"nodeType":"VariableDeclaration","src":"3566:44:135","nodes":[],"constant":false,"documentation":{"id":87188,"nodeType":"StructuredDocumentation","src":"3482:79:135","text":"@notice Address of the DisputeGameFactory.\n @custom:network-specific"},"functionSelector":"f2b4e617","mutability":"mutable","name":"disputeGameFactory","nameLocation":"3592:18:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"},"typeName":{"id":87190,"nodeType":"UserDefinedTypeName","pathNode":{"id":87189,"name":"DisputeGameFactory","nodeType":"IdentifierPath","referencedDeclaration":97682,"src":"3566:18:135"},"referencedDeclaration":97682,"src":"3566:18:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"visibility":"public"},{"id":87199,"nodeType":"VariableDeclaration","src":"3712:81:135","nodes":[],"constant":false,"documentation":{"id":87192,"nodeType":"StructuredDocumentation","src":"3617:90:135","text":"@notice A mapping of withdrawal hashes to proof submitters to `ProvenWithdrawal` data."},"functionSelector":"bb2c727e","mutability":"mutable","name":"provenWithdrawals","nameLocation":"3776:17:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$_$","typeString":"mapping(bytes32 => mapping(address => struct OptimismPortal2.ProvenWithdrawal))"},"typeName":{"id":87198,"keyType":{"id":87193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3720:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3712:56:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$_$","typeString":"mapping(bytes32 => mapping(address => struct OptimismPortal2.ProvenWithdrawal))"},"valueType":{"id":87197,"keyType":{"id":87194,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3731:36:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$","typeString":"mapping(address => struct OptimismPortal2.ProvenWithdrawal)"},"valueType":{"id":87196,"nodeType":"UserDefinedTypeName","pathNode":{"id":87195,"name":"ProvenWithdrawal","nodeType":"IdentifierPath","referencedDeclaration":87148,"src":"3750:16:135"},"referencedDeclaration":87148,"src":"3750:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_storage_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal"}}}},"visibility":"public"},{"id":87205,"nodeType":"VariableDeclaration","src":"3892:57:135","nodes":[],"constant":false,"documentation":{"id":87200,"nodeType":"StructuredDocumentation","src":"3800:87:135","text":"@notice A mapping of dispute game addresses to whether or not they are blacklisted."},"functionSelector":"45884d32","mutability":"mutable","name":"disputeGameBlacklist","nameLocation":"3929:20:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IDisputeGame_$100327_$_t_bool_$","typeString":"mapping(contract IDisputeGame => bool)"},"typeName":{"id":87204,"keyType":{"id":87202,"nodeType":"UserDefinedTypeName","pathNode":{"id":87201,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"3900:12:135"},"referencedDeclaration":100327,"src":"3900:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"Mapping","src":"3892:29:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IDisputeGame_$100327_$_t_bool_$","typeString":"mapping(contract IDisputeGame => bool)"},"valueType":{"id":87203,"name":"bool","nodeType":"ElementaryTypeName","src":"3916:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":87209,"nodeType":"VariableDeclaration","src":"4041:33:135","nodes":[],"constant":false,"documentation":{"id":87206,"nodeType":"StructuredDocumentation","src":"3956:80:135","text":"@notice The game type that the OptimismPortal consults for output proposals."},"functionSelector":"3c9f397c","mutability":"mutable","name":"respectedGameType","nameLocation":"4057:17:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":87208,"nodeType":"UserDefinedTypeName","pathNode":{"id":87207,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"4041:8:135"},"referencedDeclaration":103271,"src":"4041:8:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"public"},{"id":87212,"nodeType":"VariableDeclaration","src":"4162:40:135","nodes":[],"constant":false,"documentation":{"id":87210,"nodeType":"StructuredDocumentation","src":"4081:76:135","text":"@notice The timestamp at which the respected game type was last updated."},"functionSelector":"4fd0434c","mutability":"mutable","name":"respectedGameTypeUpdatedAt","nameLocation":"4176:26:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87211,"name":"uint64","nodeType":"ElementaryTypeName","src":"4162:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":87218,"nodeType":"VariableDeclaration","src":"4315:52:135","nodes":[],"constant":false,"documentation":{"id":87213,"nodeType":"StructuredDocumentation","src":"4209:101:135","text":"@notice Mapping of withdrawal hashes to addresses that have submitted a proof for the withdrawal."},"functionSelector":"a3860f48","mutability":"mutable","name":"proofSubmitters","nameLocation":"4352:15:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(bytes32 => address[])"},"typeName":{"id":87217,"keyType":{"id":87214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4323:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4315:29:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(bytes32 => address[])"},"valueType":{"baseType":{"id":87215,"name":"address","nodeType":"ElementaryTypeName","src":"4334:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87216,"nodeType":"ArrayTypeName","src":"4334:9:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":87229,"nodeType":"EventDefinition","src":"4878:112:135","nodes":[],"anonymous":false,"documentation":{"id":87219,"nodeType":"StructuredDocumentation","src":"4374:499:135","text":"@notice Emitted when a transaction is deposited from L1 to L2.\n The parameters of this event are read by the rollup node and used to derive deposit\n transactions on L2.\n @param from Address that triggered the deposit transaction.\n @param to Address that the deposit transaction is directed to.\n @param version Version of this deposit transaction event.\n @param opaqueData ABI encoded deposit data to be parsed off-chain."},"eventSelector":"b3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32","name":"TransactionDeposited","nameLocation":"4884:20:135","parameters":{"id":87228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87221,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4921:4:135","nodeType":"VariableDeclaration","scope":87229,"src":"4905:20:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87220,"name":"address","nodeType":"ElementaryTypeName","src":"4905:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87223,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4943:2:135","nodeType":"VariableDeclaration","scope":87229,"src":"4927:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87222,"name":"address","nodeType":"ElementaryTypeName","src":"4927:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87225,"indexed":true,"mutability":"mutable","name":"version","nameLocation":"4963:7:135","nodeType":"VariableDeclaration","scope":87229,"src":"4947:23:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87224,"name":"uint256","nodeType":"ElementaryTypeName","src":"4947:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87227,"indexed":false,"mutability":"mutable","name":"opaqueData","nameLocation":"4978:10:135","nodeType":"VariableDeclaration","scope":87229,"src":"4972:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":87226,"name":"bytes","nodeType":"ElementaryTypeName","src":"4972:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4904:85:135"}},{"id":87238,"nodeType":"EventDefinition","src":"5294:97:135","nodes":[],"anonymous":false,"documentation":{"id":87230,"nodeType":"StructuredDocumentation","src":"4996:293:135","text":"@notice Emitted when a withdrawal transaction is proven.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param from Address that triggered the withdrawal transaction.\n @param to Address that the withdrawal transaction is directed to."},"eventSelector":"67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62","name":"WithdrawalProven","nameLocation":"5300:16:135","parameters":{"id":87237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87232,"indexed":true,"mutability":"mutable","name":"withdrawalHash","nameLocation":"5333:14:135","nodeType":"VariableDeclaration","scope":87238,"src":"5317:30:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5317:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87234,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"5365:4:135","nodeType":"VariableDeclaration","scope":87238,"src":"5349:20:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87233,"name":"address","nodeType":"ElementaryTypeName","src":"5349:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87236,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"5387:2:135","nodeType":"VariableDeclaration","scope":87238,"src":"5371:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87235,"name":"address","nodeType":"ElementaryTypeName","src":"5371:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5316:74:135"}},{"id":87245,"nodeType":"EventDefinition","src":"5612:72:135","nodes":[],"anonymous":false,"documentation":{"id":87239,"nodeType":"StructuredDocumentation","src":"5397:210:135","text":"@notice Emitted when a withdrawal transaction is finalized.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param success Whether the withdrawal transaction was successful."},"eventSelector":"db5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b","name":"WithdrawalFinalized","nameLocation":"5618:19:135","parameters":{"id":87244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87241,"indexed":true,"mutability":"mutable","name":"withdrawalHash","nameLocation":"5654:14:135","nodeType":"VariableDeclaration","scope":87245,"src":"5638:30:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5638:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87243,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"5675:7:135","nodeType":"VariableDeclaration","scope":87245,"src":"5670:12:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87242,"name":"bool","nodeType":"ElementaryTypeName","src":"5670:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5637:46:135"}},{"id":87256,"nodeType":"ModifierDefinition","src":"5727:86:135","nodes":[],"body":{"id":87255,"nodeType":"Block","src":"5752:61:135","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":87248,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87383,"src":"5766:6:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":87249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5766:8:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87253,"nodeType":"IfStatement","src":"5762:33:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87250,"name":"CallPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103990,"src":"5783:10:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5783:12:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87252,"nodeType":"RevertStatement","src":"5776:19:135"}},{"id":87254,"nodeType":"PlaceholderStatement","src":"5805:1:135"}]},"documentation":{"id":87246,"nodeType":"StructuredDocumentation","src":"5690:32:135","text":"@notice Reverts when paused."},"name":"whenNotPaused","nameLocation":"5736:13:135","parameters":{"id":87247,"nodeType":"ParameterList","parameters":[],"src":"5749:2:135"},"virtual":false,"visibility":"internal"},{"id":87260,"nodeType":"VariableDeclaration","src":"5882:40:135","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":87257,"nodeType":"StructuredDocumentation","src":"5819:58:135","text":"@notice Semantic version.\n @custom:semver 3.8.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"5905:7:135","scope":87971,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":87258,"name":"string","nodeType":"ElementaryTypeName","src":"5882:6:135","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"332e382e30","id":87259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:7:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9c59c463d339610f985b3aa69b5b5031ed3afd32f941c9c4c60b492e8c1a90f","typeString":"literal_string \"3.8.0\""},"value":"3.8.0"},"visibility":"public"},{"id":87302,"nodeType":"FunctionDefinition","src":"5985:513:135","nodes":[],"body":{"id":87301,"nodeType":"Block","src":"6075:423:135","nodes":[],"statements":[{"expression":{"id":87270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87268,"name":"PROOF_MATURITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87151,"src":"6085:28:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87269,"name":"_proofMaturityDelaySeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87263,"src":"6116:26:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6085:57:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":87271,"nodeType":"ExpressionStatement","src":"6085:57:135"},{"expression":{"id":87274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87272,"name":"DISPUTE_GAME_FINALITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"6152:35:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87273,"name":"_disputeGameFinalityDelaySeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87265,"src":"6190:32:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6152:70:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":87275,"nodeType":"ExpressionStatement","src":"6152:70:135"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":87280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6306:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6298:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87278,"name":"address","nodeType":"ElementaryTypeName","src":"6298:7:135","typeDescriptions":{}}},"id":87281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6298:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87277,"name":"DisputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97682,"src":"6279:18:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DisputeGameFactory_$97682_$","typeString":"type(contract DisputeGameFactory)"}},"id":87282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6279:30:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":87286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6359:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6351:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87284,"name":"address","nodeType":"ElementaryTypeName","src":"6351:7:135","typeDescriptions":{}}},"id":87287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6351:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87283,"name":"SystemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89607,"src":"6338:12:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemConfig_$89607_$","typeString":"type(contract SystemConfig)"}},"id":87288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6338:24:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},{"arguments":[{"arguments":[{"hexValue":"30","id":87292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6420:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6412:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87290,"name":"address","nodeType":"ElementaryTypeName","src":"6412:7:135","typeDescriptions":{}}},"id":87293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6412:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87289,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"6395:16:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":87294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6395:28:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},{"arguments":[{"hexValue":"30","id":87297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6478:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":87295,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103271,"src":"6464:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$103271_$","typeString":"type(GameType)"}},"id":87296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"6464:13:135","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (uint32) pure returns (GameType)"}},"id":87298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6464:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"},{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"id":87276,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87361,"src":"6233:10:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_DisputeGameFactory_$97682_$_t_contract$_SystemConfig_$89607_$_t_contract$_SuperchainConfig_$88793_$_t_userDefinedValueType$_GameType_$103271_$returns$__$","typeString":"function (contract DisputeGameFactory,contract SystemConfig,contract SuperchainConfig,GameType)"}},"id":87299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_disputeGameFactory","_systemConfig","_superchainConfig","_initialRespectedGameType"],"nodeType":"FunctionCall","src":"6233:258:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87300,"nodeType":"ExpressionStatement","src":"6233:258:135"}]},"documentation":{"id":87261,"nodeType":"StructuredDocumentation","src":"5929:51:135","text":"@notice Constructs the OptimismPortal contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":87266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87263,"mutability":"mutable","name":"_proofMaturityDelaySeconds","nameLocation":"6005:26:135","nodeType":"VariableDeclaration","scope":87302,"src":"5997:34:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87262,"name":"uint256","nodeType":"ElementaryTypeName","src":"5997:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87265,"mutability":"mutable","name":"_disputeGameFinalityDelaySeconds","nameLocation":"6041:32:135","nodeType":"VariableDeclaration","scope":87302,"src":"6033:40:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87264,"name":"uint256","nodeType":"ElementaryTypeName","src":"6033:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5996:78:135"},"returnParameters":{"id":87267,"nodeType":"ParameterList","parameters":[],"src":"6075:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87361,"nodeType":"FunctionDefinition","src":"6730:971:135","nodes":[],"body":{"id":87360,"nodeType":"Block","src":"6967:734:135","nodes":[],"statements":[{"expression":{"id":87322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87320,"name":"disputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87191,"src":"6977:18:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87321,"name":"_disputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87306,"src":"6998:19:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"src":"6977:40:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"id":87323,"nodeType":"ExpressionStatement","src":"6977:40:135"},{"expression":{"id":87326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87324,"name":"systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87187,"src":"7027:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87325,"name":"_systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87309,"src":"7042:13:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"src":"7027:28:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"id":87327,"nodeType":"ExpressionStatement","src":"7027:28:135"},{"expression":{"id":87330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87328,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87180,"src":"7065:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87329,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87312,"src":"7084:17:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"7065:36:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":87331,"nodeType":"ExpressionStatement","src":"7065:36:135"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87332,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87165,"src":"7249:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":87335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7269:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7261:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87333,"name":"address","nodeType":"ElementaryTypeName","src":"7261:7:135","typeDescriptions":{}}},"id":87336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7261:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7249:22:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87356,"nodeType":"IfStatement","src":"7245:414:135","trueBody":{"id":87355,"nodeType":"Block","src":"7273:386:135","statements":[{"expression":{"id":87341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87338,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87165,"src":"7287:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":87339,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"7298:9:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":87340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"7298:27:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7287:38:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87342,"nodeType":"ExpressionStatement","src":"7287:38:135"},{"expression":{"id":87349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87343,"name":"respectedGameTypeUpdatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87212,"src":"7485:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":87346,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7521:5:135","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7521:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7514:6:135","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":87344,"name":"uint64","nodeType":"ElementaryTypeName","src":"7514:6:135","typeDescriptions":{}}},"id":87348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7514:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7485:52:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":87350,"nodeType":"ExpressionStatement","src":"7485:52:135"},{"expression":{"id":87353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87351,"name":"respectedGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87209,"src":"7603:17:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87352,"name":"_initialRespectedGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87315,"src":"7623:25:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"src":"7603:45:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87354,"nodeType":"ExpressionStatement","src":"7603:45:135"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87357,"name":"__ResourceMetering_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88580,"src":"7669:23:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7669:25:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87359,"nodeType":"ExpressionStatement","src":"7669:25:135"}]},"documentation":{"id":87303,"nodeType":"StructuredDocumentation","src":"6504:221:135","text":"@notice Initializer.\n @param _disputeGameFactory Contract of the DisputeGameFactory.\n @param _systemConfig Contract of the SystemConfig.\n @param _superchainConfig Contract of the SuperchainConfig."},"functionSelector":"8e819e54","implemented":true,"kind":"function","modifiers":[{"id":87318,"kind":"modifierInvocation","modifierName":{"id":87317,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"6951:11:135"},"nodeType":"ModifierInvocation","src":"6951:11:135"}],"name":"initialize","nameLocation":"6739:10:135","parameters":{"id":87316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87306,"mutability":"mutable","name":"_disputeGameFactory","nameLocation":"6778:19:135","nodeType":"VariableDeclaration","scope":87361,"src":"6759:38:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"},"typeName":{"id":87305,"nodeType":"UserDefinedTypeName","pathNode":{"id":87304,"name":"DisputeGameFactory","nodeType":"IdentifierPath","referencedDeclaration":97682,"src":"6759:18:135"},"referencedDeclaration":97682,"src":"6759:18:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"visibility":"internal"},{"constant":false,"id":87309,"mutability":"mutable","name":"_systemConfig","nameLocation":"6820:13:135","nodeType":"VariableDeclaration","scope":87361,"src":"6807:26:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"},"typeName":{"id":87308,"nodeType":"UserDefinedTypeName","pathNode":{"id":87307,"name":"SystemConfig","nodeType":"IdentifierPath","referencedDeclaration":89607,"src":"6807:12:135"},"referencedDeclaration":89607,"src":"6807:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"visibility":"internal"},{"constant":false,"id":87312,"mutability":"mutable","name":"_superchainConfig","nameLocation":"6860:17:135","nodeType":"VariableDeclaration","scope":87361,"src":"6843:34:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":87311,"nodeType":"UserDefinedTypeName","pathNode":{"id":87310,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"6843:16:135"},"referencedDeclaration":88793,"src":"6843:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"},{"constant":false,"id":87315,"mutability":"mutable","name":"_initialRespectedGameType","nameLocation":"6896:25:135","nodeType":"VariableDeclaration","scope":87361,"src":"6887:34:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":87314,"nodeType":"UserDefinedTypeName","pathNode":{"id":87313,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"6887:8:135"},"referencedDeclaration":103271,"src":"6887:8:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"}],"src":"6749:178:135"},"returnParameters":{"id":87319,"nodeType":"ParameterList","parameters":[],"src":"6967:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87372,"nodeType":"FunctionDefinition","src":"7954:101:135","nodes":[],"body":{"id":87371,"nodeType":"Block","src":"8004:51:135","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87367,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87180,"src":"8021:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":87368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"guardian","nodeType":"MemberAccess","referencedDeclaration":88693,"src":"8021:25:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":87369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8021:27:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":87366,"id":87370,"nodeType":"Return","src":"8014:34:135"}]},"documentation":{"id":87362,"nodeType":"StructuredDocumentation","src":"7707:242:135","text":"@notice Getter function for the address of the guardian.\n Public getter is legacy and will be removed in the future. Use `SuperchainConfig.guardian()` instead.\n @return Address of the guardian.\n @custom:legacy"},"functionSelector":"452a9320","implemented":true,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"7963:8:135","parameters":{"id":87363,"nodeType":"ParameterList","parameters":[],"src":"7971:2:135"},"returnParameters":{"id":87366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87372,"src":"7995:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87364,"name":"address","nodeType":"ElementaryTypeName","src":"7995:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7994:9:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87383,"nodeType":"FunctionDefinition","src":"8115:94:135","nodes":[],"body":{"id":87382,"nodeType":"Block","src":"8160:49:135","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87378,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87180,"src":"8177:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":87379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"8177:23:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":87380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8177:25:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87377,"id":87381,"nodeType":"Return","src":"8170:32:135"}]},"documentation":{"id":87373,"nodeType":"StructuredDocumentation","src":"8061:49:135","text":"@notice Getter for the current paused status."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"8124:6:135","parameters":{"id":87374,"nodeType":"ParameterList","parameters":[],"src":"8130:2:135"},"returnParameters":{"id":87377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87383,"src":"8154:4:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87375,"name":"bool","nodeType":"ElementaryTypeName","src":"8154:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8153:6:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87392,"nodeType":"FunctionDefinition","src":"8268:119:135","nodes":[],"body":{"id":87391,"nodeType":"Block","src":"8335:52:135","nodes":[],"statements":[{"expression":{"id":87389,"name":"PROOF_MATURITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87151,"src":"8352:28:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87388,"id":87390,"nodeType":"Return","src":"8345:35:135"}]},"documentation":{"id":87384,"nodeType":"StructuredDocumentation","src":"8215:48:135","text":"@notice Getter for the proof maturity delay."},"functionSelector":"bf653a5c","implemented":true,"kind":"function","modifiers":[],"name":"proofMaturityDelaySeconds","nameLocation":"8277:25:135","parameters":{"id":87385,"nodeType":"ParameterList","parameters":[],"src":"8302:2:135"},"returnParameters":{"id":87388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87392,"src":"8326:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87386,"name":"uint256","nodeType":"ElementaryTypeName","src":"8326:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8325:9:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87401,"nodeType":"FunctionDefinition","src":"8453:132:135","nodes":[],"body":{"id":87400,"nodeType":"Block","src":"8526:59:135","nodes":[],"statements":[{"expression":{"id":87398,"name":"DISPUTE_GAME_FINALITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"8543:35:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87397,"id":87399,"nodeType":"Return","src":"8536:42:135"}]},"documentation":{"id":87393,"nodeType":"StructuredDocumentation","src":"8393:55:135","text":"@notice Getter for the dispute game finality delay."},"functionSelector":"952b2797","implemented":true,"kind":"function","modifiers":[],"name":"disputeGameFinalityDelaySeconds","nameLocation":"8462:31:135","parameters":{"id":87394,"nodeType":"ParameterList","parameters":[],"src":"8493:2:135"},"returnParameters":{"id":87397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87401,"src":"8517:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87395,"name":"uint256","nodeType":"ElementaryTypeName","src":"8517:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8516:9:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87416,"nodeType":"FunctionDefinition","src":"9078:120:135","nodes":[],"body":{"id":87415,"nodeType":"Block","src":"9151:47:135","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87409,"name":"_byteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87404,"src":"9168:10:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":87410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9181:2:135","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9168:15:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3231303030","id":87412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9186:5:135","typeDescriptions":{"typeIdentifier":"t_rational_21000_by_1","typeString":"int_const 21000"},"value":"21000"},"src":"9168:23:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":87408,"id":87414,"nodeType":"Return","src":"9161:30:135"}]},"documentation":{"id":87402,"nodeType":"StructuredDocumentation","src":"8591:482:135","text":"@notice Computes the minimum gas limit for a deposit.\n The minimum gas limit linearly increases based on the size of the calldata.\n This is to prevent users from creating L2 resource usage without paying for it.\n This function can be used when interacting with the portal to ensure forwards\n compatibility.\n @param _byteCount Number of bytes in the calldata.\n @return The minimum gas limit for a deposit."},"functionSelector":"a35d99df","implemented":true,"kind":"function","modifiers":[],"name":"minimumGasLimit","nameLocation":"9087:15:135","parameters":{"id":87405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87404,"mutability":"mutable","name":"_byteCount","nameLocation":"9110:10:135","nodeType":"VariableDeclaration","scope":87416,"src":"9103:17:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87403,"name":"uint64","nodeType":"ElementaryTypeName","src":"9103:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"9102:19:135"},"returnParameters":{"id":87408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87416,"src":"9143:6:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87406,"name":"uint64","nodeType":"ElementaryTypeName","src":"9143:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"9142:8:135"},"scope":87971,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":87434,"nodeType":"FunctionDefinition","src":"9577:130:135","nodes":[],"body":{"id":87433,"nodeType":"Block","src":"9604:103:135","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":87421,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9633:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9633:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":87423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9645:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"9645:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87425,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87162,"src":"9656:25:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"66616c7365","id":87426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9683:5:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"","id":87429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9696:2:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":87428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9690:5:135","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":87427,"name":"bytes","nodeType":"ElementaryTypeName","src":"9690:5:135","typeDescriptions":{}}},"id":87430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9690:9:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":87420,"name":"depositTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87785,"src":"9614:18:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint64,bool,bytes memory)"}},"id":87431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9614:86:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87432,"nodeType":"ExpressionStatement","src":"9614:86:135"}]},"documentation":{"id":87417,"nodeType":"StructuredDocumentation","src":"9204:368:135","text":"@notice Accepts value so that users can send ETH directly to this contract and have the\n funds be deposited to their address on L2. This is intended as a convenience\n function for EOAs. Contracts should call the depositTransaction() function directly\n otherwise any deposited funds will be lost due to address aliasing."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":87418,"nodeType":"ParameterList","parameters":[],"src":"9584:2:135"},"returnParameters":{"id":87419,"nodeType":"ParameterList","parameters":[],"src":"9604:0:135"},"scope":87971,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":87439,"nodeType":"FunctionDefinition","src":"9921:77:135","nodes":[],"body":{"id":87438,"nodeType":"Block","src":"9959:39:135","nodes":[],"statements":[]},"documentation":{"id":87435,"nodeType":"StructuredDocumentation","src":"9713:203:135","text":"@notice Accepts ETH value without triggering a deposit to L2.\n This function mainly exists for the sake of the migration between the legacy\n Optimism system and Bedrock."},"functionSelector":"8b4c40b0","implemented":true,"kind":"function","modifiers":[],"name":"donateETH","nameLocation":"9930:9:135","parameters":{"id":87436,"nodeType":"ParameterList","parameters":[],"src":"9939:2:135"},"returnParameters":{"id":87437,"nodeType":"ParameterList","parameters":[],"src":"9959:0:135"},"scope":87971,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":87452,"nodeType":"FunctionDefinition","src":"10247:152:135","nodes":[],"body":{"id":87451,"nodeType":"Block","src":"10346:53:135","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87447,"name":"systemConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87187,"src":"10363:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_SystemConfig_$89607","typeString":"contract SystemConfig"}},"id":87448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resourceConfig","nodeType":"MemberAccess","referencedDeclaration":89527,"src":"10363:27:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_ResourceConfig_$88258_memory_ptr_$","typeString":"function () view external returns (struct ResourceMetering.ResourceConfig memory)"}},"id":87449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10363:29:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"functionReturnParameters":87446,"id":87450,"nodeType":"Return","src":"10356:36:135"}]},"baseFunctions":[88555],"documentation":{"id":87440,"nodeType":"StructuredDocumentation","src":"10004:238:135","text":"@notice Getter for the resource config.\n Used internally by the ResourceMetering contract.\n The SystemConfig is the source of truth for the resource config.\n @return ResourceMetering ResourceConfig"},"implemented":true,"kind":"function","modifiers":[],"name":"_resourceConfig","nameLocation":"10256:15:135","overrides":{"id":87442,"nodeType":"OverrideSpecifier","overrides":[],"src":"10288:8:135"},"parameters":{"id":87441,"nodeType":"ParameterList","parameters":[],"src":"10271:2:135"},"returnParameters":{"id":87446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87452,"src":"10306:38:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":87444,"nodeType":"UserDefinedTypeName","pathNode":{"id":87443,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":88258,"src":"10306:31:135"},"referencedDeclaration":88258,"src":"10306:31:135","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$88258_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"10305:40:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87599,"nodeType":"FunctionDefinition","src":"10816:3564:135","nodes":[],"body":{"id":87598,"nodeType":"Block","src":"11084:3296:135","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87470,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87456,"src":"11329:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"11329:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":87474,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11351:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal2_$87971","typeString":"contract OptimismPortal2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal2_$87971","typeString":"contract OptimismPortal2"}],"id":87473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11343:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87472,"name":"address","nodeType":"ElementaryTypeName","src":"11343:7:135","typeDescriptions":{}}},"id":87475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11343:13:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11329:27:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e64206d6573736167657320746f2074686520706f7274616c20636f6e7472616374","id":87477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11358:65:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8","typeString":"literal_string \"OptimismPortal: you cannot send messages to the portal contract\""},"value":"OptimismPortal: you cannot send messages to the portal contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8","typeString":"literal_string \"OptimismPortal: you cannot send messages to the portal contract\""}],"id":87469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11321:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11321:103:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87479,"nodeType":"ExpressionStatement","src":"11321:103:135"},{"assignments":[87482,null,87485],"declarations":[{"constant":false,"id":87482,"mutability":"mutable","name":"gameType","nameLocation":"11525:8:135","nodeType":"VariableDeclaration","scope":87598,"src":"11516:17:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":87481,"nodeType":"UserDefinedTypeName","pathNode":{"id":87480,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"11516:8:135"},"referencedDeclaration":103271,"src":"11516:8:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},null,{"constant":false,"id":87485,"mutability":"mutable","name":"gameProxy","nameLocation":"11549:9:135","nodeType":"VariableDeclaration","scope":87598,"src":"11536:22:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":87484,"nodeType":"UserDefinedTypeName","pathNode":{"id":87483,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"11536:12:135"},"referencedDeclaration":100327,"src":"11536:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":87490,"initialValue":{"arguments":[{"id":87488,"name":"_disputeGameIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87458,"src":"11593:17:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":87486,"name":"disputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87191,"src":"11562:18:135","typeDescriptions":{"typeIdentifier":"t_contract$_DisputeGameFactory_$97682","typeString":"contract DisputeGameFactory"}},"id":87487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gameAtIndex","nodeType":"MemberAccess","referencedDeclaration":97346,"src":"11562:30:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"function (uint256) view external returns (GameType,Timestamp,contract IDisputeGame)"}},"id":87489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11562:49:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"nodeType":"VariableDeclarationStatement","src":"11515:96:135"},{"assignments":[87493],"declarations":[{"constant":false,"id":87493,"mutability":"mutable","name":"outputRoot","nameLocation":"11627:10:135","nodeType":"VariableDeclaration","scope":87598,"src":"11621:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":87492,"nodeType":"UserDefinedTypeName","pathNode":{"id":87491,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"11621:5:135"},"referencedDeclaration":103255,"src":"11621:5:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"id":87497,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87494,"name":"gameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87485,"src":"11640:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rootClaim","nodeType":"MemberAccess","referencedDeclaration":100294,"src":"11640:19:135","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure external returns (Claim)"}},"id":87496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11640:21:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"VariableDeclarationStatement","src":"11621:40:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":87505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87499,"name":"gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87482,"src":"11758:8:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"11758:12:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":87501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11758:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87502,"name":"respectedGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87209,"src":"11776:17:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"11776:21:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":87504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11776:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11758:41:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797065","id":87506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11801:35:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea6e52a7a06be8d460d58a9fb591f5b7ad20643cdd834b0004aaeaa0647b1d4b","typeString":"literal_string \"OptimismPortal: invalid game type\""},"value":"OptimismPortal: invalid game type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea6e52a7a06be8d460d58a9fb591f5b7ad20643cdd834b0004aaeaa0647b1d4b","typeString":"literal_string \"OptimismPortal: invalid game type\""}],"id":87498,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11750:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11750:87:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87508,"nodeType":"ExpressionStatement","src":"11750:87:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":87517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87510,"name":"outputRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87493,"src":"11957:10:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"id":87511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101085,"src":"11957:14:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":87512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11957:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":87515,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87461,"src":"12005:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}],"expression":{"id":87513,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"11977:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":87514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashOutputRootProof","nodeType":"MemberAccess","referencedDeclaration":103935,"src":"11977:27:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutputRootProof_$104316_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.OutputRootProof memory) pure returns (bytes32)"}},"id":87516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11977:45:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11957:65:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c6964206f757470757420726f6f742070726f6f66","id":87518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12036:43:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996","typeString":"literal_string \"OptimismPortal: invalid output root proof\""},"value":"OptimismPortal: invalid output root proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996","typeString":"literal_string \"OptimismPortal: invalid output root proof\""}],"id":87509,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11936:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11936:153:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87520,"nodeType":"ExpressionStatement","src":"11936:153:135"},{"assignments":[87522],"declarations":[{"constant":false,"id":87522,"mutability":"mutable","name":"withdrawalHash","nameLocation":"12208:14:135","nodeType":"VariableDeclaration","scope":87598,"src":"12200:22:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12200:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":87527,"initialValue":{"arguments":[{"id":87525,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87456,"src":"12248:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":87523,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"12225:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":87524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"12225:22:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":87526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12225:27:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12200:52:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":87534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87529,"name":"gameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87485,"src":"12424:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":100274,"src":"12424:16:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_GameStatus_$103277_$","typeString":"function () view external returns (enum GameStatus)"}},"id":87531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12424:18:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":87532,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"12446:10:135","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":87533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHALLENGER_WINS","nodeType":"MemberAccess","referencedDeclaration":103275,"src":"12446:26:135","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"12424:48:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a2063616e6e6f742070726f766520616761696e737420696e76616c696420646973707574652067616d6573","id":87535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12486:60:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_69fd02e8f1261d2d4a8ae7fdb140ea99e9eb488a3b5b9ae3c51756d573f7f1f7","typeString":"literal_string \"OptimismPortal: cannot prove against invalid dispute games\""},"value":"OptimismPortal: cannot prove against invalid dispute games"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69fd02e8f1261d2d4a8ae7fdb140ea99e9eb488a3b5b9ae3c51756d573f7f1f7","typeString":"literal_string \"OptimismPortal: cannot prove against invalid dispute games\""}],"id":87528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12403:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12403:153:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87537,"nodeType":"ExpressionStatement","src":"12403:153:135"},{"assignments":[87539],"declarations":[{"constant":false,"id":87539,"mutability":"mutable","name":"storageKey","nameLocation":"12800:10:135","nodeType":"VariableDeclaration","scope":87598,"src":"12792:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12792:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":87550,"initialValue":{"arguments":[{"arguments":[{"id":87543,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87522,"src":"12864:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":87546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12904:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12896:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":87544,"name":"uint256","nodeType":"ElementaryTypeName","src":"12896:7:135","typeDescriptions":{}}},"id":87547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12896:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":87541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12836:3:135","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":87542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"12836:10:135","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":87548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12836:147:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":87540,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12813:9:135","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12813:180:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12792:201:135"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":87556,"name":"storageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87539,"src":"13419:10:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":87554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13408:3:135","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":87555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"13408:10:135","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":87557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13408:22:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"01","id":87558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13456:7:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":87559,"name":"_withdrawalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87464,"src":"13489:16:135","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":87560,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87461,"src":"13530:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof calldata"}},"id":87561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"messagePasserStorageRoot","nodeType":"MemberAccess","referencedDeclaration":104313,"src":"13530:41:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":87552,"name":"SecureMerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106033,"src":"13346:16:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SecureMerkleTrie_$106033_$","typeString":"type(library SecureMerkleTrie)"}},"id":87553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyInclusionProof","nodeType":"MemberAccess","referencedDeclaration":105985,"src":"13346:37:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory,bytes memory[] memory,bytes32) pure returns (bool)"}},"id":87562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_key","_value","_proof","_root"],"nodeType":"FunctionCall","src":"13346:240:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c6964207769746864726177616c20696e636c7573696f6e2070726f6f66","id":87563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13600:52:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9","typeString":"literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""},"value":"OptimismPortal: invalid withdrawal inclusion proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9","typeString":"literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""}],"id":87551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13325:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13325:337:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87565,"nodeType":"ExpressionStatement","src":"13325:337:135"},{"expression":{"id":87580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":87566,"name":"provenWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87199,"src":"13960:17:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$_$","typeString":"mapping(bytes32 => mapping(address => struct OptimismPortal2.ProvenWithdrawal storage ref))"}},"id":87570,"indexExpression":{"id":87567,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87522,"src":"13978:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13960:33:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$","typeString":"mapping(address => struct OptimismPortal2.ProvenWithdrawal storage ref)"}},"id":87571,"indexExpression":{"expression":{"id":87568,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13994:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13994:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13960:45:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_storage","typeString":"struct OptimismPortal2.ProvenWithdrawal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":87573,"name":"gameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87485,"src":"14057:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},{"arguments":[{"expression":{"id":87576,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14086:5:135","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14086:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14079:6:135","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":87574,"name":"uint64","nodeType":"ElementaryTypeName","src":"14079:6:135","typeDescriptions":{}}},"id":87578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14079:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":87572,"name":"ProvenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87148,"src":"14020:16:135","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProvenWithdrawal_$87148_storage_ptr_$","typeString":"type(struct OptimismPortal2.ProvenWithdrawal storage pointer)"}},"id":87579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["disputeGameProxy","timestamp"],"nodeType":"FunctionCall","src":"14020:85:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal memory"}},"src":"13960:145:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_storage","typeString":"struct OptimismPortal2.ProvenWithdrawal storage ref"}},"id":87581,"nodeType":"ExpressionStatement","src":"13960:145:135"},{"eventCall":{"arguments":[{"id":87583,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87522,"src":"14182:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":87584,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87456,"src":"14198:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":104339,"src":"14198:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":87586,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87456,"src":"14210:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"14210:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87582,"name":"WithdrawalProven","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87238,"src":"14165:16:135","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":87588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14165:56:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87589,"nodeType":"EmitStatement","src":"14160:61:135"},{"expression":{"arguments":[{"expression":{"id":87594,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14362:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14362:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":87590,"name":"proofSubmitters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87218,"src":"14325:15:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(bytes32 => address[] storage ref)"}},"id":87592,"indexExpression":{"id":87591,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87522,"src":"14341:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14325:31:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":87593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"14325:36:135","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":87596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14325:48:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87597,"nodeType":"ExpressionStatement","src":"14325:48:135"}]},"documentation":{"id":87453,"nodeType":"StructuredDocumentation","src":"10405:406:135","text":"@notice Proves a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize.\n @param _disputeGameIndex Index of the dispute game to prove the withdrawal against.\n @param _outputRootProof Inclusion proof of the L2ToL1MessagePasser contract's storage root.\n @param _withdrawalProof Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."},"functionSelector":"4870496f","implemented":true,"kind":"function","modifiers":[{"id":87467,"kind":"modifierInvocation","modifierName":{"id":87466,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":87256,"src":"11066:13:135"},"nodeType":"ModifierInvocation","src":"11066:13:135"}],"name":"proveWithdrawalTransaction","nameLocation":"10825:26:135","parameters":{"id":87465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87456,"mutability":"mutable","name":"_tx","nameLocation":"10896:3:135","nodeType":"VariableDeclaration","scope":87599,"src":"10861:38:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":87455,"nodeType":"UserDefinedTypeName","pathNode":{"id":87454,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":104348,"src":"10861:27:135"},"referencedDeclaration":104348,"src":"10861:27:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":87458,"mutability":"mutable","name":"_disputeGameIndex","nameLocation":"10917:17:135","nodeType":"VariableDeclaration","scope":87599,"src":"10909:25:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87457,"name":"uint256","nodeType":"ElementaryTypeName","src":"10909:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87461,"mutability":"mutable","name":"_outputRootProof","nameLocation":"10975:16:135","nodeType":"VariableDeclaration","scope":87599,"src":"10944:47:135","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":87460,"nodeType":"UserDefinedTypeName","pathNode":{"id":87459,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":104316,"src":"10944:21:135"},"referencedDeclaration":104316,"src":"10944:21:135","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$104316_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":87464,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"11018:16:135","nodeType":"VariableDeclaration","scope":87599,"src":"11001:33:135","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":87462,"name":"bytes","nodeType":"ElementaryTypeName","src":"11001:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":87463,"nodeType":"ArrayTypeName","src":"11001:7:135","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"10851:189:135"},"returnParameters":{"id":87468,"nodeType":"ParameterList","parameters":[],"src":"11084:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87615,"nodeType":"FunctionDefinition","src":"14493:178:135","nodes":[],"body":{"id":87614,"nodeType":"Block","src":"14595:76:135","nodes":[],"statements":[{"expression":{"arguments":[{"id":87609,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87603,"src":"14648:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},{"expression":{"id":87610,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14653:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14653:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87608,"name":"finalizeWithdrawalTransactionExternalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87695,"src":"14605:42:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct Types.WithdrawalTransaction memory,address)"}},"id":87612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14605:59:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87613,"nodeType":"ExpressionStatement","src":"14605:59:135"}]},"documentation":{"id":87600,"nodeType":"StructuredDocumentation","src":"14386:102:135","text":"@notice Finalizes a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize."},"functionSelector":"8c3152e9","implemented":true,"kind":"function","modifiers":[{"id":87606,"kind":"modifierInvocation","modifierName":{"id":87605,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":87256,"src":"14581:13:135"},"nodeType":"ModifierInvocation","src":"14581:13:135"}],"name":"finalizeWithdrawalTransaction","nameLocation":"14502:29:135","parameters":{"id":87604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87603,"mutability":"mutable","name":"_tx","nameLocation":"14567:3:135","nodeType":"VariableDeclaration","scope":87615,"src":"14532:38:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":87602,"nodeType":"UserDefinedTypeName","pathNode":{"id":87601,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":104348,"src":"14532:27:135"},"referencedDeclaration":104348,"src":"14532:27:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"14531:40:135"},"returnParameters":{"id":87607,"nodeType":"ParameterList","parameters":[],"src":"14595:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87695,"nodeType":"FunctionDefinition","src":"14882:2403:135","nodes":[],"body":{"id":87694,"nodeType":"Block","src":"15062:2223:135","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87627,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87165,"src":"15328:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":87628,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"15340:9:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":87629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"15340:27:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15328:39:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a2063616e206f6e6c792074726967676572206f6e65207769746864726177616c20706572207472616e73616374696f6e","id":87631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15369:65:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b","typeString":"literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""},"value":"OptimismPortal: can only trigger one withdrawal per transaction"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b","typeString":"literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""}],"id":87626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15307:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15307:137:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87633,"nodeType":"ExpressionStatement","src":"15307:137:135"},{"assignments":[87635],"declarations":[{"constant":false,"id":87635,"mutability":"mutable","name":"withdrawalHash","nameLocation":"15503:14:135","nodeType":"VariableDeclaration","scope":87694,"src":"15495:22:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15495:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":87640,"initialValue":{"arguments":[{"id":87638,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"15543:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":87636,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"15520:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":87637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"15520:22:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":87639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15520:27:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15495:52:135"},{"expression":{"arguments":[{"id":87642,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87635,"src":"15629:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87643,"name":"_proofSubmitter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87621,"src":"15645:15:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87641,"name":"checkWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87956,"src":"15613:15:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":87644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15613:48:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87645,"nodeType":"ExpressionStatement","src":"15613:48:135"},{"expression":{"id":87650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":87646,"name":"finalizedWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87170,"src":"15741:20:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":87648,"indexExpression":{"id":87647,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87635,"src":"15762:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15741:36:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":87649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15780:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15741:43:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87651,"nodeType":"ExpressionStatement","src":"15741:43:135"},{"expression":{"id":87655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87652,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87165,"src":"15878:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":87653,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"15889:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":104339,"src":"15889:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15878:21:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87656,"nodeType":"ExpressionStatement","src":"15878:21:135"},{"assignments":[87658],"declarations":[{"constant":false,"id":87658,"mutability":"mutable","name":"success","nameLocation":"16524:7:135","nodeType":"VariableDeclaration","scope":87694,"src":"16519:12:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87657,"name":"bool","nodeType":"ElementaryTypeName","src":"16519:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":87670,"initialValue":{"arguments":[{"expression":{"id":87661,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"16558:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":104341,"src":"16558:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":87663,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"16570:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":104345,"src":"16570:12:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":87665,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"16584:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":104343,"src":"16584:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":87667,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87619,"src":"16595:3:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":87668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":104347,"src":"16595:8:135","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":87659,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104213,"src":"16534:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCall_$104213_$","typeString":"type(library SafeCall)"}},"id":87660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"callWithMinGas","nodeType":"MemberAccess","referencedDeclaration":104212,"src":"16534:23:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bool)"}},"id":87669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16534:70:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16519:85:135"},{"expression":{"id":87674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87671,"name":"l2Sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87165,"src":"16672:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":87672,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"16683:9:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":87673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":103058,"src":"16683:27:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16672:38:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87675,"nodeType":"ExpressionStatement","src":"16672:38:135"},{"eventCall":{"arguments":[{"id":87677,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87635,"src":"16889:14:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87678,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87658,"src":"16905:7:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":87676,"name":"WithdrawalFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87245,"src":"16869:19:135","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":87679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16869:44:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87680,"nodeType":"EmitStatement","src":"16864:49:135"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17177:8:135","subExpression":{"id":87681,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87658,"src":"17178:7:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87683,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17189:2:135","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":87684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"17189:9:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":87685,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"17202:9:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":87686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ESTIMATION_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":103054,"src":"17202:28:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17189:41:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17177:53:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87693,"nodeType":"IfStatement","src":"17173:106:135","trueBody":{"id":87692,"nodeType":"Block","src":"17232:47:135","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87689,"name":"GasEstimation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103993,"src":"17253:13:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17253:15:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87691,"nodeType":"RevertStatement","src":"17246:22:135"}]}}]},"documentation":{"id":87616,"nodeType":"StructuredDocumentation","src":"14677:200:135","text":"@notice Finalizes a withdrawal transaction, using an external proof submitter.\n @param _tx Withdrawal transaction to finalize.\n @param _proofSubmitter Address of the proof submitter."},"functionSelector":"43ca1c50","implemented":true,"kind":"function","modifiers":[{"id":87624,"kind":"modifierInvocation","modifierName":{"id":87623,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":87256,"src":"15044:13:135"},"nodeType":"ModifierInvocation","src":"15044:13:135"}],"name":"finalizeWithdrawalTransactionExternalProof","nameLocation":"14891:42:135","parameters":{"id":87622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87619,"mutability":"mutable","name":"_tx","nameLocation":"14978:3:135","nodeType":"VariableDeclaration","scope":87695,"src":"14943:38:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":87618,"nodeType":"UserDefinedTypeName","pathNode":{"id":87617,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":104348,"src":"14943:27:135"},"referencedDeclaration":104348,"src":"14943:27:135","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":87621,"mutability":"mutable","name":"_proofSubmitter","nameLocation":"14999:15:135","nodeType":"VariableDeclaration","scope":87695,"src":"14991:23:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87620,"name":"address","nodeType":"ElementaryTypeName","src":"14991:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14933:87:135"},"returnParameters":{"id":87625,"nodeType":"ParameterList","parameters":[],"src":"15062:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87785,"nodeType":"FunctionDefinition","src":"18015:1855:135","nodes":[],"body":{"id":87784,"nodeType":"Block","src":"18236:1634:135","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87712,"name":"_isCreation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87704,"src":"18375:11:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87713,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87698,"src":"18390:3:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":87716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18405:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18397:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87714,"name":"address","nodeType":"ElementaryTypeName","src":"18397:7:135","typeDescriptions":{}}},"id":87717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18397:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18390:17:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18375:32:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87723,"nodeType":"IfStatement","src":"18371:56:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87720,"name":"BadTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103969,"src":"18416:9:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18416:11:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87722,"nodeType":"RevertStatement","src":"18409:18:135"}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87724,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87702,"src":"18579:9:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":87728,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87706,"src":"18614:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":87729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"18614:12:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18607:6:135","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":87726,"name":"uint64","nodeType":"ElementaryTypeName","src":"18607:6:135","typeDescriptions":{}}},"id":87730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18607:20:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":87725,"name":"minimumGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87416,"src":"18591:15:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_uint64_$","typeString":"function (uint64) pure returns (uint64)"}},"id":87731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18591:37:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18579:49:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87736,"nodeType":"IfStatement","src":"18575:77:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87733,"name":"SmallGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103975,"src":"18637:13:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18637:15:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87735,"nodeType":"RevertStatement","src":"18630:22:135"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87737,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87706,"src":"19027:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":87738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19027:12:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3132305f303030","id":87739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19042:7:135","typeDescriptions":{"typeIdentifier":"t_rational_120000_by_1","typeString":"int_const 120000"},"value":"120_000"},"src":"19027:22:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87744,"nodeType":"IfStatement","src":"19023:50:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87741,"name":"LargeCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103972,"src":"19058:13:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19058:15:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87743,"nodeType":"RevertStatement","src":"19051:22:135"}},{"assignments":[87746],"declarations":[{"constant":false,"id":87746,"mutability":"mutable","name":"from","nameLocation":"19172:4:135","nodeType":"VariableDeclaration","scope":87784,"src":"19164:12:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87745,"name":"address","nodeType":"ElementaryTypeName","src":"19164:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":87749,"initialValue":{"expression":{"id":87747,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19179:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19179:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19164:25:135"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87750,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19203:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19203:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":87752,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"19217:2:135","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":87753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"19217:9:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19203:23:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87764,"nodeType":"IfStatement","src":"19199:108:135","trueBody":{"id":87763,"nodeType":"Block","src":"19228:79:135","statements":[{"expression":{"id":87761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87755,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87746,"src":"19242:4:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":87758,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19285:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19285:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":87756,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"19249:18:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressAliasHelper_$111913_$","typeString":"type(library AddressAliasHelper)"}},"id":87757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"applyL1ToL2Alias","nodeType":"MemberAccess","referencedDeclaration":111890,"src":"19249:35:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_address_$","typeString":"function (address) pure returns (address)"}},"id":87760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19249:47:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19242:54:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87762,"nodeType":"ExpressionStatement","src":"19242:54:135"}]}},{"assignments":[87766],"declarations":[{"constant":false,"id":87766,"mutability":"mutable","name":"opaqueData","nameLocation":"19577:10:135","nodeType":"VariableDeclaration","scope":87784,"src":"19564:23:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":87765,"name":"bytes","nodeType":"ElementaryTypeName","src":"19564:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":87776,"initialValue":{"arguments":[{"expression":{"id":87769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19607:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"19607:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87771,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87700,"src":"19618:6:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87772,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87702,"src":"19626:9:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":87773,"name":"_isCreation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87704,"src":"19637:11:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":87774,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87706,"src":"19650:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":87767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19590:3:135","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":87768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"19590:16:135","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":87775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19590:66:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19564:92:135"},{"eventCall":{"arguments":[{"id":87778,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87746,"src":"19824:4:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87779,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87698,"src":"19830:3:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87780,"name":"DEPOSIT_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87158,"src":"19835:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":87781,"name":"opaqueData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87766,"src":"19852:10:135","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":87777,"name":"TransactionDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87229,"src":"19803:20:135","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":87782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19803:60:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87783,"nodeType":"EmitStatement","src":"19798:65:135"}]},"documentation":{"id":87696,"nodeType":"StructuredDocumentation","src":"17291:719:135","text":"@notice Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in\n deriving deposit transactions. Note that if a deposit is made by a contract, its\n address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider\n using the CrossDomainMessenger contracts for a simpler developer experience.\n @param _to Target address on L2.\n @param _value ETH value to send to the recipient.\n @param _gasLimit Amount of L2 gas to purchase by burning gas on L1.\n @param _isCreation Whether or not the transaction is a contract creation.\n @param _data Data to trigger the recipient with."},"functionSelector":"e9e05c42","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87709,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87702,"src":"18221:9:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":87710,"kind":"modifierInvocation","modifierName":{"id":87708,"name":"metered","nodeType":"IdentifierPath","referencedDeclaration":88284,"src":"18213:7:135"},"nodeType":"ModifierInvocation","src":"18213:18:135"}],"name":"depositTransaction","nameLocation":"18024:18:135","parameters":{"id":87707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87698,"mutability":"mutable","name":"_to","nameLocation":"18060:3:135","nodeType":"VariableDeclaration","scope":87785,"src":"18052:11:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87697,"name":"address","nodeType":"ElementaryTypeName","src":"18052:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87700,"mutability":"mutable","name":"_value","nameLocation":"18081:6:135","nodeType":"VariableDeclaration","scope":87785,"src":"18073:14:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87699,"name":"uint256","nodeType":"ElementaryTypeName","src":"18073:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87702,"mutability":"mutable","name":"_gasLimit","nameLocation":"18104:9:135","nodeType":"VariableDeclaration","scope":87785,"src":"18097:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87701,"name":"uint64","nodeType":"ElementaryTypeName","src":"18097:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":87704,"mutability":"mutable","name":"_isCreation","nameLocation":"18128:11:135","nodeType":"VariableDeclaration","scope":87785,"src":"18123:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87703,"name":"bool","nodeType":"ElementaryTypeName","src":"18123:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":87706,"mutability":"mutable","name":"_data","nameLocation":"18162:5:135","nodeType":"VariableDeclaration","scope":87785,"src":"18149:18:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":87705,"name":"bytes","nodeType":"ElementaryTypeName","src":"18149:5:135","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18042:131:135"},"returnParameters":{"id":87711,"nodeType":"ParameterList","parameters":[],"src":"18236:0:135"},"scope":87971,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":87808,"nodeType":"FunctionDefinition","src":"20049:185:135","nodes":[],"body":{"id":87807,"nodeType":"Block","src":"20115:119:135","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87792,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20129:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20129:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":87794,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87372,"src":"20143:8:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20143:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20129:24:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87800,"nodeType":"IfStatement","src":"20125:51:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87797,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103987,"src":"20162:12:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20162:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87799,"nodeType":"RevertStatement","src":"20155:21:135"}},{"expression":{"id":87805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":87801,"name":"disputeGameBlacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87205,"src":"20186:20:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IDisputeGame_$100327_$_t_bool_$","typeString":"mapping(contract IDisputeGame => bool)"}},"id":87803,"indexExpression":{"id":87802,"name":"_disputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87789,"src":"20207:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20186:34:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":87804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20223:4:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20186:41:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87806,"nodeType":"ExpressionStatement","src":"20186:41:135"}]},"documentation":{"id":87786,"nodeType":"StructuredDocumentation","src":"19876:168:135","text":"@notice Blacklists a dispute game. Should only be used in the event that a dispute game resolves incorrectly.\n @param _disputeGame Dispute game to blacklist."},"functionSelector":"7d6be8dc","implemented":true,"kind":"function","modifiers":[],"name":"blacklistDisputeGame","nameLocation":"20058:20:135","parameters":{"id":87790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87789,"mutability":"mutable","name":"_disputeGame","nameLocation":"20092:12:135","nodeType":"VariableDeclaration","scope":87808,"src":"20079:25:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":87788,"nodeType":"UserDefinedTypeName","pathNode":{"id":87787,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"20079:12:135"},"referencedDeclaration":100327,"src":"20079:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"20078:27:135"},"returnParameters":{"id":87791,"nodeType":"ParameterList","parameters":[],"src":"20115:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87837,"nodeType":"FunctionDefinition","src":"20481:228:135","nodes":[],"body":{"id":87836,"nodeType":"Block","src":"20540:169:135","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87815,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20554:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20554:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":87817,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87372,"src":"20568:8:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20568:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20554:24:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87823,"nodeType":"IfStatement","src":"20550:51:135","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":87820,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103987,"src":"20587:12:135","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":87821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20587:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87822,"nodeType":"RevertStatement","src":"20580:21:135"}},{"expression":{"id":87826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87824,"name":"respectedGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87209,"src":"20611:17:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87825,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87812,"src":"20631:9:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"src":"20611:29:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87827,"nodeType":"ExpressionStatement","src":"20611:29:135"},{"expression":{"id":87834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87828,"name":"respectedGameTypeUpdatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87212,"src":"20650:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":87831,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20686:5:135","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20686:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20679:6:135","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":87829,"name":"uint64","nodeType":"ElementaryTypeName","src":"20679:6:135","typeDescriptions":{}}},"id":87833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20679:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"20650:52:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":87835,"nodeType":"ExpressionStatement","src":"20650:52:135"}]},"documentation":{"id":87809,"nodeType":"StructuredDocumentation","src":"20240:236:135","text":"@notice Sets the respected game type. Changing this value can alter the security properties of the system,\n depending on the new game's behavior.\n @param _gameType The game type to consult for output proposals."},"functionSelector":"7fc48504","implemented":true,"kind":"function","modifiers":[],"name":"setRespectedGameType","nameLocation":"20490:20:135","parameters":{"id":87813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87812,"mutability":"mutable","name":"_gameType","nameLocation":"20520:9:135","nodeType":"VariableDeclaration","scope":87837,"src":"20511:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":87811,"nodeType":"UserDefinedTypeName","pathNode":{"id":87810,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"20511:8:135"},"referencedDeclaration":103271,"src":"20511:8:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"}],"src":"20510:20:135"},"returnParameters":{"id":87814,"nodeType":"ParameterList","parameters":[],"src":"20540:0:135"},"scope":87971,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87956,"nodeType":"FunctionDefinition","src":"21034:3510:135","nodes":[],"body":{"id":87955,"nodeType":"Block","src":"21121:3423:135","nodes":[],"statements":[{"assignments":[87847],"declarations":[{"constant":false,"id":87847,"mutability":"mutable","name":"provenWithdrawal","nameLocation":"21155:16:135","nodeType":"VariableDeclaration","scope":87955,"src":"21131:40:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal"},"typeName":{"id":87846,"nodeType":"UserDefinedTypeName","pathNode":{"id":87845,"name":"ProvenWithdrawal","nodeType":"IdentifierPath","referencedDeclaration":87148,"src":"21131:16:135"},"referencedDeclaration":87148,"src":"21131:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_storage_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal"}},"visibility":"internal"}],"id":87853,"initialValue":{"baseExpression":{"baseExpression":{"id":87848,"name":"provenWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87199,"src":"21174:17:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$_$","typeString":"mapping(bytes32 => mapping(address => struct OptimismPortal2.ProvenWithdrawal storage ref))"}},"id":87850,"indexExpression":{"id":87849,"name":"_withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87840,"src":"21192:15:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21174:34:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ProvenWithdrawal_$87148_storage_$","typeString":"mapping(address => struct OptimismPortal2.ProvenWithdrawal storage ref)"}},"id":87852,"indexExpression":{"id":87851,"name":"_proofSubmitter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87842,"src":"21209:15:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21174:51:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_storage","typeString":"struct OptimismPortal2.ProvenWithdrawal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21131:94:135"},{"assignments":[87856],"declarations":[{"constant":false,"id":87856,"mutability":"mutable","name":"disputeGameProxy","nameLocation":"21248:16:135","nodeType":"VariableDeclaration","scope":87955,"src":"21235:29:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":87855,"nodeType":"UserDefinedTypeName","pathNode":{"id":87854,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"21235:12:135"},"referencedDeclaration":100327,"src":"21235:12:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":87859,"initialValue":{"expression":{"id":87857,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"21267:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal memory"}},"id":87858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"disputeGameProxy","nodeType":"MemberAccess","referencedDeclaration":87145,"src":"21267:33:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"VariableDeclarationStatement","src":"21235:65:135"},{"expression":{"arguments":[{"id":87864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21372:39:135","subExpression":{"baseExpression":{"id":87861,"name":"disputeGameBlacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87205,"src":"21373:20:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IDisputeGame_$100327_$_t_bool_$","typeString":"mapping(contract IDisputeGame => bool)"}},"id":87863,"indexExpression":{"id":87862,"name":"disputeGameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87856,"src":"21394:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21373:38:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20646973707574652067616d6520686173206265656e20626c61636b6c6973746564","id":87865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21413:51:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_73f1817c6693b1e67cebb729644f638bfff163fd990e09b18d9a753bee9d3156","typeString":"literal_string \"OptimismPortal: dispute game has been blacklisted\""},"value":"OptimismPortal: dispute game has been blacklisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73f1817c6693b1e67cebb729644f638bfff163fd990e09b18d9a753bee9d3156","typeString":"literal_string \"OptimismPortal: dispute game has been blacklisted\""}],"id":87860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21364:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21364:101:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87867,"nodeType":"ExpressionStatement","src":"21364:101:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87869,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"21728:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal memory"}},"id":87870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":87147,"src":"21728:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":87871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21758:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21728:31:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e6f74206265656e2070726f76656e2062792070726f6f66207375626d6974746572206164647265737320796574","id":87873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21773:79:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_dff7e2322b891da5e795cf007265ba6491e079cdcc6285755ab2ef47d12c1b3e","typeString":"literal_string \"OptimismPortal: withdrawal has not been proven by proof submitter address yet\""},"value":"OptimismPortal: withdrawal has not been proven by proof submitter address yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dff7e2322b891da5e795cf007265ba6491e079cdcc6285755ab2ef47d12c1b3e","typeString":"literal_string \"OptimismPortal: withdrawal has not been proven by proof submitter address yet\""}],"id":87868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21707:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21707:155:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87875,"nodeType":"ExpressionStatement","src":"21707:155:135"},{"assignments":[87877],"declarations":[{"constant":false,"id":87877,"mutability":"mutable","name":"createdAt","nameLocation":"21880:9:135","nodeType":"VariableDeclaration","scope":87955,"src":"21873:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87876,"name":"uint64","nodeType":"ElementaryTypeName","src":"21873:6:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":87883,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87878,"name":"disputeGameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87856,"src":"21892:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":100260,"src":"21892:26:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function () view external returns (Timestamp)"}},"id":87880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21892:28:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"id":87881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101124,"src":"21892:32:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (Timestamp) pure returns (uint64)"}},"id":87882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21892:34:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"21873:53:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87885,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"22211:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal memory"}},"id":87886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":87147,"src":"22211:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":87887,"name":"createdAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87877,"src":"22240:9:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22211:38:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657374616d70206c657373207468616e20646973707574652067616d65206372656174696f6e2074696d657374616d70","id":87889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22263:80:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ad74f1e06ee42b3b76dc1e11cd4cd398b1f9faab8a48965612e5077366f3ac5","typeString":"literal_string \"OptimismPortal: withdrawal timestamp less than dispute game creation timestamp\""},"value":"OptimismPortal: withdrawal timestamp less than dispute game creation timestamp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ad74f1e06ee42b3b76dc1e11cd4cd398b1f9faab8a48965612e5077366f3ac5","typeString":"literal_string \"OptimismPortal: withdrawal timestamp less than dispute game creation timestamp\""}],"id":87884,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22190:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22190:163:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87891,"nodeType":"ExpressionStatement","src":"22190:163:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87893,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22485:5:135","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22485:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":87895,"name":"provenWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"22503:16:135","typeDescriptions":{"typeIdentifier":"t_struct$_ProvenWithdrawal_$87148_memory_ptr","typeString":"struct OptimismPortal2.ProvenWithdrawal memory"}},"id":87896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":87147,"src":"22503:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"22485:44:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":87898,"name":"PROOF_MATURITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87151,"src":"22532:28:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22485:75:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a2070726f76656e207769746864726177616c20686173206e6f74206d61747572656420796574","id":87900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22574:55:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_76db07ababbe7ead3930082886fa1efd5937fe1ef0c82ee1c6b5f5e6f3c5b440","typeString":"literal_string \"OptimismPortal: proven withdrawal has not matured yet\""},"value":"OptimismPortal: proven withdrawal has not matured yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76db07ababbe7ead3930082886fa1efd5937fe1ef0c82ee1c6b5f5e6f3c5b440","typeString":"literal_string \"OptimismPortal: proven withdrawal has not matured yet\""}],"id":87892,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22464:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22464:175:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87902,"nodeType":"ExpressionStatement","src":"22464:175:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"},"id":87909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87904,"name":"disputeGameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87856,"src":"22943:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":100274,"src":"22943:23:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_GameStatus_$103277_$","typeString":"function () view external returns (enum GameStatus)"}},"id":87906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22943:25:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":87907,"name":"GameStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103277,"src":"22972:10:135","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GameStatus_$103277_$","typeString":"type(enum GameStatus)"}},"id":87908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DEFENDER_WINS","nodeType":"MemberAccess","referencedDeclaration":103276,"src":"22972:24:135","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$103277","typeString":"enum GameStatus"}},"src":"22943:53:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c20686173206e6f74206265656e2076616c696461746564","id":87910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23010:56:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a59e1f27f0a2f1f7f0bcad40a1f45d3cc032caa0d85e86ecaf6cb415c3f90fc","typeString":"literal_string \"OptimismPortal: output proposal has not been validated\""},"value":"OptimismPortal: output proposal has not been validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a59e1f27f0a2f1f7f0bcad40a1f45d3cc032caa0d85e86ecaf6cb415c3f90fc","typeString":"literal_string \"OptimismPortal: output proposal has not been validated\""}],"id":87903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22922:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22922:154:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87912,"nodeType":"ExpressionStatement","src":"22922:154:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":87922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87914,"name":"disputeGameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87856,"src":"23349:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gameType","nodeType":"MemberAccess","referencedDeclaration":100281,"src":"23349:25:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function () view external returns (GameType)"}},"id":87916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23349:27:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"23349:31:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":87918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23349:33:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87919,"name":"respectedGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87209,"src":"23386:17:135","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":87920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"23386:21:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":87921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23386:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"23349:60:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20696e76616c69642067616d652074797065","id":87923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23411:35:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea6e52a7a06be8d460d58a9fb591f5b7ad20643cdd834b0004aaeaa0647b1d4b","typeString":"literal_string \"OptimismPortal: invalid game type\""},"value":"OptimismPortal: invalid game type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea6e52a7a06be8d460d58a9fb591f5b7ad20643cdd834b0004aaeaa0647b1d4b","typeString":"literal_string \"OptimismPortal: invalid game type\""}],"id":87913,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23341:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23341:106:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87925,"nodeType":"ExpressionStatement","src":"23341:106:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":87929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87927,"name":"createdAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87877,"src":"23709:9:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":87928,"name":"respectedGameTypeUpdatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87212,"src":"23722:26:135","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23709:39:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a20646973707574652067616d652063726561746564206265666f7265207265737065637465642067616d652074797065207761732075706461746564","id":87930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23762:77:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb316f1f3803f121f540c3c08dac6b170256917a9481e6e8393a29885b3a291f","typeString":"literal_string \"OptimismPortal: dispute game created before respected game type was updated\""},"value":"OptimismPortal: dispute game created before respected game type was updated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb316f1f3803f121f540c3c08dac6b170256917a9481e6e8393a29885b3a291f","typeString":"literal_string \"OptimismPortal: dispute game created before respected game type was updated\""}],"id":87926,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23688:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23688:161:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87932,"nodeType":"ExpressionStatement","src":"23688:161:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":87934,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24166:5:135","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"24166:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87936,"name":"disputeGameProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87856,"src":"24184:16:135","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":87937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resolvedAt","nodeType":"MemberAccess","referencedDeclaration":100267,"src":"24184:27:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function () view external returns (Timestamp)"}},"id":87938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24184:29:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"id":87939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101124,"src":"24184:33:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (Timestamp) pure returns (uint64)"}},"id":87940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24184:35:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24166:53:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":87942,"name":"DISPUTE_GAME_FINALITY_DELAY_SECONDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"24222:35:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24166:91:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c20696e206169722d676170","id":87944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24271:44:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a9b71e2152e178b3e39fef8c45fff793ac6b1f468eb7fbc612e0d564625c10f","typeString":"literal_string \"OptimismPortal: output proposal in air-gap\""},"value":"OptimismPortal: output proposal in air-gap"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a9b71e2152e178b3e39fef8c45fff793ac6b1f468eb7fbc612e0d564625c10f","typeString":"literal_string \"OptimismPortal: output proposal in air-gap\""}],"id":87933,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24145:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24145:180:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87946,"nodeType":"ExpressionStatement","src":"24145:180:135"},{"expression":{"arguments":[{"id":87951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24441:38:135","subExpression":{"baseExpression":{"id":87948,"name":"finalizedWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87170,"src":"24442:20:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":87950,"indexExpression":{"id":87949,"name":"_withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87840,"src":"24463:15:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24442:37:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d506f7274616c3a207769746864726177616c2068617320616c7265616479206265656e2066696e616c697a6564","id":87952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24481:55:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485","typeString":"literal_string \"OptimismPortal: withdrawal has already been finalized\""},"value":"OptimismPortal: withdrawal has already been finalized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485","typeString":"literal_string \"OptimismPortal: withdrawal has already been finalized\""}],"id":87947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24433:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":87953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24433:104:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87954,"nodeType":"ExpressionStatement","src":"24433:104:135"}]},"documentation":{"id":87838,"nodeType":"StructuredDocumentation","src":"20715:314:135","text":"@notice Checks if a withdrawal can be finalized. This function will revert if the withdrawal cannot be\n finalized, and otherwise has no side-effects.\n @param _withdrawalHash Hash of the withdrawal to check.\n @param _proofSubmitter The submitter of the proof for the withdrawal hash"},"functionSelector":"71c1566e","implemented":true,"kind":"function","modifiers":[],"name":"checkWithdrawal","nameLocation":"21043:15:135","parameters":{"id":87843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87840,"mutability":"mutable","name":"_withdrawalHash","nameLocation":"21067:15:135","nodeType":"VariableDeclaration","scope":87956,"src":"21059:23:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21059:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87842,"mutability":"mutable","name":"_proofSubmitter","nameLocation":"21092:15:135","nodeType":"VariableDeclaration","scope":87956,"src":"21084:23:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87841,"name":"address","nodeType":"ElementaryTypeName","src":"21084:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21058:50:135"},"returnParameters":{"id":87844,"nodeType":"ParameterList","parameters":[],"src":"21121:0:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87970,"nodeType":"FunctionDefinition","src":"24767:148:135","nodes":[],"body":{"id":87969,"nodeType":"Block","src":"24852:63:135","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":87964,"name":"proofSubmitters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87218,"src":"24869:15:135","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(bytes32 => address[] storage ref)"}},"id":87966,"indexExpression":{"id":87965,"name":"_withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87959,"src":"24885:15:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24869:32:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":87967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"24869:39:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87963,"id":87968,"nodeType":"Return","src":"24862:46:135"}]},"documentation":{"id":87957,"nodeType":"StructuredDocumentation","src":"24550:212:135","text":"@notice External getter for the number of proof submitters for a withdrawal hash.\n @param _withdrawalHash Hash of the withdrawal.\n @return The number of proof submitters for the withdrawal hash."},"functionSelector":"513747ab","implemented":true,"kind":"function","modifiers":[],"name":"numProofSubmitters","nameLocation":"24776:18:135","parameters":{"id":87960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87959,"mutability":"mutable","name":"_withdrawalHash","nameLocation":"24803:15:135","nodeType":"VariableDeclaration","scope":87970,"src":"24795:23:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24795:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24794:25:135"},"returnParameters":{"id":87963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87970,"src":"24843:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87961,"name":"uint256","nodeType":"ElementaryTypeName","src":"24843:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24842:9:135"},"scope":87971,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":87137,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":49678,"src":"1338:13:135"},"id":87138,"nodeType":"InheritanceSpecifier","src":"1338:13:135"},{"baseName":{"id":87139,"name":"ResourceMetering","nodeType":"IdentifierPath","referencedDeclaration":88581,"src":"1353:16:135"},"id":87140,"nodeType":"InheritanceSpecifier","src":"1353:16:135"},{"baseName":{"id":87141,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1371:7:135"},"id":87142,"nodeType":"InheritanceSpecifier","src":"1371:7:135"}],"canonicalName":"OptimismPortal2","contractDependencies":[],"contractKind":"contract","documentation":{"id":87136,"nodeType":"StructuredDocumentation","src":"971:339:135","text":"@custom:proxied\n @title OptimismPortal2\n @notice The OptimismPortal is a low-level contract responsible for passing messages between L1\n and L2. Messages sent directly to the OptimismPortal have no form of replayability.\n Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."},"fullyImplemented":true,"linearizedBaseContracts":[87971,109417,88581,49678],"name":"OptimismPortal2","nameLocation":"1319:15:135","scope":87972,"usedErrors":[88238,103969,103972,103975,103987,103990,103993]}],"license":"MIT"},"id":135} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/ProxyAdmin.json b/packages/sdk/src/forge-artifacts/ProxyAdmin.json new file mode 100644 index 000000000000..2edb1663c68a --- /dev/null +++ b/packages/sdk/src/forge-artifacts/ProxyAdmin.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addressManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AddressManager"}],"stateMutability":"view"},{"type":"function","name":"changeProxyAdmin","inputs":[{"name":"_proxy","type":"address","internalType":"address payable"},{"name":"_newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getProxyAdmin","inputs":[{"name":"_proxy","type":"address","internalType":"address payable"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProxyImplementation","inputs":[{"name":"_proxy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementationName","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"isUpgrading","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxyType","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ProxyAdmin.ProxyType"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddressManager","inputs":[{"name":"_address","type":"address","internalType":"contract AddressManager"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setImplementationName","inputs":[{"name":"_address","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProxyType","inputs":[{"name":"_address","type":"address","internalType":"address"},{"name":"_type","type":"uint8","internalType":"enum ProxyAdmin.ProxyType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpgrading","inputs":[{"name":"_upgrading","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgrade","inputs":[{"name":"_proxy","type":"address","internalType":"address payable"},{"name":"_implementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeAndCall","inputs":[{"name":"_proxy","type":"address","internalType":"address payable"},{"name":"_implementation","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001a5f38038062001a5f8339810160408190526200003491620000a1565b6200003f3362000051565b6200004a8162000051565b50620000d3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000b457600080fd5b81516001600160a01b0381168114620000cc57600080fd5b9392505050565b61197c80620000e36000396000f3fe60806040526004361061010e5760003560e01c8063860f7cda116100a557806399a88ec411610074578063b794726211610059578063b794726214610329578063f2fde38b14610364578063f3b7dead1461038457600080fd5b806399a88ec4146102e95780639b2ea4bd1461030957600080fd5b8063860f7cda1461026b5780638d52d4a01461028b5780638da5cb5b146102ab5780639623609d146102d657600080fd5b80633ab76e9f116100e15780633ab76e9f146101cc5780636bd9f516146101f9578063715018a6146102365780637eff275e1461024b57600080fd5b80630652b57a1461011357806307c8f7b014610135578063204e1c7a14610155578063238181ae1461019f575b600080fd5b34801561011f57600080fd5b5061013361012e3660046111f9565b6103a4565b005b34801561014157600080fd5b50610133610150366004611216565b6103f3565b34801561016157600080fd5b506101756101703660046111f9565b610445565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101ab57600080fd5b506101bf6101ba3660046111f9565b61066b565b60405161019691906112ae565b3480156101d857600080fd5b506003546101759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561020557600080fd5b506102296102143660046111f9565b60016020526000908152604090205460ff1681565b60405161019691906112f0565b34801561024257600080fd5b50610133610705565b34801561025757600080fd5b50610133610266366004611331565b610719565b34801561027757600080fd5b5061013361028636600461148c565b6108cc565b34801561029757600080fd5b506101336102a63660046114dc565b610903565b3480156102b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610175565b6101336102e436600461150e565b610977565b3480156102f557600080fd5b50610133610304366004611331565b610b8e565b34801561031557600080fd5b50610133610324366004611584565b610e1e565b34801561033557600080fd5b5060035474010000000000000000000000000000000000000000900460ff166040519015158152602001610196565b34801561037057600080fd5b5061013361037f3660046111f9565b610eb4565b34801561039057600080fd5b5061017561039f3660046111f9565b610f6b565b6103ac6110e1565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6103fb6110e1565b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff1681816002811115610481576104816112c1565b036104fc578273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f591906115cb565b9392505050565b6001816002811115610510576105106112c1565b03610560578273ffffffffffffffffffffffffffffffffffffffff1663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b6002816002811115610574576105746112c1565b036105fe5760035473ffffffffffffffffffffffffffffffffffffffff8481166000908152600260205260409081902090517fbf40fac1000000000000000000000000000000000000000000000000000000008152919092169163bf40fac1916105e19190600401611635565b602060405180830381865afa1580156104d1573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065000060448201526064015b60405180910390fd5b50919050565b60026020526000908152604090208054610684906115e8565b80601f01602080910402602001604051908101604052809291908181526020018280546106b0906115e8565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b505050505081565b61070d6110e1565b6107176000611162565b565b6107216110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff169081600281111561075d5761075d6112c1565b036107e9576040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690638f283970906024015b600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b50505050505050565b60018160028111156107fd576107fd6112c1565b03610856576040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906313af4035906024016107b2565b600281600281111561086a5761086a6112c1565b036105fe576003546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529091169063f2fde38b906024016107b2565b505050565b6108d46110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090206108c78282611724565b61090b6110e1565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160208190526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091169083600281111561096e5761096e6112c1565b02179055505050565b61097f6110e1565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081205460ff16908160028111156109bb576109bb6112c1565b03610a81576040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690634f1ef286903490610a16908790879060040161183e565b60006040518083038185885af1158015610a34573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a7b9190810190611875565b50610b88565b610a8b8484610b8e565b60008473ffffffffffffffffffffffffffffffffffffffff163484604051610ab391906118ec565b60006040518083038185875af1925050503d8060008114610af0576040519150601f19603f3d011682016040523d82523d6000602084013e610af5565b606091505b5050905080610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722060448201527f75706772616465206661696c6564000000000000000000000000000000000000606482015260840161065c565b505b50505050565b610b966110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff1690816002811115610bd257610bd26112c1565b03610c2b576040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690633659cfe6906024016107b2565b6001816002811115610c3f57610c3f6112c1565b03610cbe576040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152841690639b0b0fda906044016107b2565b6002816002811115610cd257610cd26112c1565b03610e165773ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604081208054610d07906115e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d33906115e8565b8015610d805780601f10610d5557610100808354040283529160200191610d80565b820191906000526020600020905b815481529060010190602001808311610d6357829003601f168201915b50506003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815294955073ffffffffffffffffffffffffffffffffffffffff1693639b2ea4bd9350610dde92508591508790600401611908565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b5050505050505050565b6108c7611940565b610e266110e1565b6003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690639b2ea4bd90610e7e9085908590600401611908565b600060405180830381600087803b158015610e9857600080fd5b505af1158015610eac573d6000803e3d6000fd5b505050505050565b610ebc6110e1565b73ffffffffffffffffffffffffffffffffffffffff8116610f5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161065c565b610f6881611162565b50565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff1681816002811115610fa757610fa76112c1565b03610ff7578273ffffffffffffffffffffffffffffffffffffffff1663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b600181600281111561100b5761100b6112c1565b0361105b578273ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b600281600281111561106f5761106f6112c1565b036105fe57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff163314610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f6857600080fd5b60006020828403121561120b57600080fd5b81356104f5816111d7565b60006020828403121561122857600080fd5b813580151581146104f557600080fd5b60005b8381101561125357818101518382015260200161123b565b83811115610b885750506000910152565b6000815180845261127c816020860160208601611238565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104f56020830184611264565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061132b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561134457600080fd5b823561134f816111d7565b9150602083013561135f816111d7565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156113e0576113e061136a565b604052919050565b600067ffffffffffffffff8211156114025761140261136a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600061144161143c846113e8565b611399565b905082815283838301111561145557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261147d57600080fd5b6104f58383356020850161142e565b6000806040838503121561149f57600080fd5b82356114aa816111d7565b9150602083013567ffffffffffffffff8111156114c657600080fd5b6114d28582860161146c565b9150509250929050565b600080604083850312156114ef57600080fd5b82356114fa816111d7565b915060208301356003811061135f57600080fd5b60008060006060848603121561152357600080fd5b833561152e816111d7565b9250602084013561153e816111d7565b9150604084013567ffffffffffffffff81111561155a57600080fd5b8401601f8101861361156b57600080fd5b61157a8682356020840161142e565b9150509250925092565b6000806040838503121561159757600080fd5b823567ffffffffffffffff8111156115ae57600080fd5b6115ba8582860161146c565b925050602083013561135f816111d7565b6000602082840312156115dd57600080fd5b81516104f5816111d7565b600181811c908216806115fc57607f821691505b602082108103610665577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454611649816115e8565b8084870152604060018084166000811461166a57600181146116a2576116d0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a010195506116d0565b896000528660002060005b858110156116c85781548b82018601529083019088016116ad565b8a0184019650505b509398975050505050505050565b601f8211156108c757600081815260208120601f850160051c810160208610156117055750805b601f850160051c820191505b81811015610eac57828155600101611711565b815167ffffffffffffffff81111561173e5761173e61136a565b6117528161174c84546115e8565b846116de565b602080601f8311600181146117a5576000841561176f5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eac565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156117f2578886015182559484019460019091019084016117d3565b508582101561182e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061186d6040830184611264565b949350505050565b60006020828403121561188757600080fd5b815167ffffffffffffffff81111561189e57600080fd5b8201601f810184136118af57600080fd5b80516118bd61143c826113e8565b8181528560208385010111156118d257600080fd5b6118e3826020830160208601611238565b95945050505050565b600082516118fe818460208701611238565b9190910192915050565b60408152600061191b6040830185611264565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea164736f6c634300080f000a","sourceMap":"1241:8036:234:-:0;;;2494:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:40;719:10:60;936:18:40;:32::i;:::-;2542:26:234::1;2561:6:::0;2542:18:::1;:26::i;:::-;2494:81:::0;1241:8036;;2433:187:40;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:40;;;-1:-1:-1;;;;;;2541:17:40;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:357:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:357;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:357:o;:::-;1241:8036:234;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061010e5760003560e01c8063860f7cda116100a557806399a88ec411610074578063b794726211610059578063b794726214610329578063f2fde38b14610364578063f3b7dead1461038457600080fd5b806399a88ec4146102e95780639b2ea4bd1461030957600080fd5b8063860f7cda1461026b5780638d52d4a01461028b5780638da5cb5b146102ab5780639623609d146102d657600080fd5b80633ab76e9f116100e15780633ab76e9f146101cc5780636bd9f516146101f9578063715018a6146102365780637eff275e1461024b57600080fd5b80630652b57a1461011357806307c8f7b014610135578063204e1c7a14610155578063238181ae1461019f575b600080fd5b34801561011f57600080fd5b5061013361012e3660046111f9565b6103a4565b005b34801561014157600080fd5b50610133610150366004611216565b6103f3565b34801561016157600080fd5b506101756101703660046111f9565b610445565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101ab57600080fd5b506101bf6101ba3660046111f9565b61066b565b60405161019691906112ae565b3480156101d857600080fd5b506003546101759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561020557600080fd5b506102296102143660046111f9565b60016020526000908152604090205460ff1681565b60405161019691906112f0565b34801561024257600080fd5b50610133610705565b34801561025757600080fd5b50610133610266366004611331565b610719565b34801561027757600080fd5b5061013361028636600461148c565b6108cc565b34801561029757600080fd5b506101336102a63660046114dc565b610903565b3480156102b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610175565b6101336102e436600461150e565b610977565b3480156102f557600080fd5b50610133610304366004611331565b610b8e565b34801561031557600080fd5b50610133610324366004611584565b610e1e565b34801561033557600080fd5b5060035474010000000000000000000000000000000000000000900460ff166040519015158152602001610196565b34801561037057600080fd5b5061013361037f3660046111f9565b610eb4565b34801561039057600080fd5b5061017561039f3660046111f9565b610f6b565b6103ac6110e1565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6103fb6110e1565b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff1681816002811115610481576104816112c1565b036104fc578273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f591906115cb565b9392505050565b6001816002811115610510576105106112c1565b03610560578273ffffffffffffffffffffffffffffffffffffffff1663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b6002816002811115610574576105746112c1565b036105fe5760035473ffffffffffffffffffffffffffffffffffffffff8481166000908152600260205260409081902090517fbf40fac1000000000000000000000000000000000000000000000000000000008152919092169163bf40fac1916105e19190600401611635565b602060405180830381865afa1580156104d1573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065000060448201526064015b60405180910390fd5b50919050565b60026020526000908152604090208054610684906115e8565b80601f01602080910402602001604051908101604052809291908181526020018280546106b0906115e8565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b505050505081565b61070d6110e1565b6107176000611162565b565b6107216110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff169081600281111561075d5761075d6112c1565b036107e9576040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690638f283970906024015b600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b50505050505050565b60018160028111156107fd576107fd6112c1565b03610856576040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906313af4035906024016107b2565b600281600281111561086a5761086a6112c1565b036105fe576003546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529091169063f2fde38b906024016107b2565b505050565b6108d46110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090206108c78282611724565b61090b6110e1565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160208190526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091169083600281111561096e5761096e6112c1565b02179055505050565b61097f6110e1565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081205460ff16908160028111156109bb576109bb6112c1565b03610a81576040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690634f1ef286903490610a16908790879060040161183e565b60006040518083038185885af1158015610a34573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a7b9190810190611875565b50610b88565b610a8b8484610b8e565b60008473ffffffffffffffffffffffffffffffffffffffff163484604051610ab391906118ec565b60006040518083038185875af1925050503d8060008114610af0576040519150601f19603f3d011682016040523d82523d6000602084013e610af5565b606091505b5050905080610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722060448201527f75706772616465206661696c6564000000000000000000000000000000000000606482015260840161065c565b505b50505050565b610b966110e1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff1690816002811115610bd257610bd26112c1565b03610c2b576040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690633659cfe6906024016107b2565b6001816002811115610c3f57610c3f6112c1565b03610cbe576040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152841690639b0b0fda906044016107b2565b6002816002811115610cd257610cd26112c1565b03610e165773ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604081208054610d07906115e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d33906115e8565b8015610d805780601f10610d5557610100808354040283529160200191610d80565b820191906000526020600020905b815481529060010190602001808311610d6357829003601f168201915b50506003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815294955073ffffffffffffffffffffffffffffffffffffffff1693639b2ea4bd9350610dde92508591508790600401611908565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b5050505050505050565b6108c7611940565b610e266110e1565b6003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690639b2ea4bd90610e7e9085908590600401611908565b600060405180830381600087803b158015610e9857600080fd5b505af1158015610eac573d6000803e3d6000fd5b505050505050565b610ebc6110e1565b73ffffffffffffffffffffffffffffffffffffffff8116610f5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161065c565b610f6881611162565b50565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff1681816002811115610fa757610fa76112c1565b03610ff7578273ffffffffffffffffffffffffffffffffffffffff1663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b600181600281111561100b5761100b6112c1565b0361105b578273ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b600281600281111561106f5761106f6112c1565b036105fe57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d1573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff163314610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f6857600080fd5b60006020828403121561120b57600080fd5b81356104f5816111d7565b60006020828403121561122857600080fd5b813580151581146104f557600080fd5b60005b8381101561125357818101518382015260200161123b565b83811115610b885750506000910152565b6000815180845261127c816020860160208601611238565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104f56020830184611264565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061132b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561134457600080fd5b823561134f816111d7565b9150602083013561135f816111d7565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156113e0576113e061136a565b604052919050565b600067ffffffffffffffff8211156114025761140261136a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600061144161143c846113e8565b611399565b905082815283838301111561145557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261147d57600080fd5b6104f58383356020850161142e565b6000806040838503121561149f57600080fd5b82356114aa816111d7565b9150602083013567ffffffffffffffff8111156114c657600080fd5b6114d28582860161146c565b9150509250929050565b600080604083850312156114ef57600080fd5b82356114fa816111d7565b915060208301356003811061135f57600080fd5b60008060006060848603121561152357600080fd5b833561152e816111d7565b9250602084013561153e816111d7565b9150604084013567ffffffffffffffff81111561155a57600080fd5b8401601f8101861361156b57600080fd5b61157a8682356020840161142e565b9150509250925092565b6000806040838503121561159757600080fd5b823567ffffffffffffffff8111156115ae57600080fd5b6115ba8582860161146c565b925050602083013561135f816111d7565b6000602082840312156115dd57600080fd5b81516104f5816111d7565b600181811c908216806115fc57607f821691505b602082108103610665577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454611649816115e8565b8084870152604060018084166000811461166a57600181146116a2576116d0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a010195506116d0565b896000528660002060005b858110156116c85781548b82018601529083019088016116ad565b8a0184019650505b509398975050505050505050565b601f8211156108c757600081815260208120601f850160051c810160208610156117055750805b601f850160051c820191505b81811015610eac57828155600101611711565b815167ffffffffffffffff81111561173e5761173e61136a565b6117528161174c84546115e8565b846116de565b602080601f8311600181146117a5576000841561176f5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eac565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156117f2578886015182559484019460019091019084016117d3565b508582101561182e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061186d6040830184611264565b949350505050565b60006020828403121561188757600080fd5b815167ffffffffffffffff81111561189e57600080fd5b8201601f810184136118af57600080fd5b80516118bd61143c826113e8565b8181528560208385010111156118d257600080fd5b6118e3826020830160208601611238565b95945050505050565b600082516118fe818460208701611238565b9190910192915050565b60408152600061191b6040830185611264565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea164736f6c634300080f000a","sourceMap":"1241:8036:234:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3571:113;;;;;;;;;;-1:-1:-1;3571:113:234;;;;;:::i;:::-;;:::i;:::-;;4430:97;;;;;;;;;;-1:-1:-1;4430:97:234;;;;;:::i;:::-;;:::i;5236:569::-;;;;;;;;;;-1:-1:-1;5236:569:234;;;;;:::i;:::-;;:::i;:::-;;;1204:42:357;1192:55;;;1174:74;;1162:2;1147:18;5236:569:234;;;;;;;;2087:52;;;;;;;;;;-1:-1:-1;2087:52:234;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2273:36::-;;;;;;;;;;-1:-1:-1;2273:36:234;;;;;;;;1760:46;;;;;;;;;;-1:-1:-1;1760:46:234;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;1831:101:40:-;;;;;;;;;;;;;:::i;6689:531:234:-;;;;;;;;;;-1:-1:-1;6689:531:234;;;;;:::i;:::-;;:::i;3219:142::-;;;;;;;;;;-1:-1:-1;3219:142:234;;;;;:::i;:::-;;:::i;2796:120::-;;;;;;;;;;-1:-1:-1;2796:120:234;;;;;:::i;:::-;;:::i;1201:85:40:-;;;;;;;;;;-1:-1:-1;1247:7:40;1273:6;;;1201:85;;8644:631:234;;;;;;:::i;:::-;;:::i;7423:816::-;;;;;;;;;;-1:-1:-1;7423:816:234;;;;;:::i;:::-;;:::i;4126:137::-;;;;;;;;;;-1:-1:-1;4126:137:234;;;;;:::i;:::-;;:::i;4941:85::-;;;;;;;;;;-1:-1:-1;5010:9:234;;;;;;;4941:85;;7028:14:357;;7021:22;7003:41;;6991:2;6976:18;4941:85:234;6863:187:357;2081:198:40;;;;;;;;;;-1:-1:-1;2081:198:40;;;;;:::i;:::-;;:::i;5988:519:234:-;;;;;;;;;;-1:-1:-1;5988:519:234;;;;;:::i;:::-;;:::i;3571:113::-;1094:13:40;:11;:13::i;:::-;3652:14:234::1;:25:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3571:113::o;4430:97::-;1094:13:40;:11;:13::i;:::-;4498:9:234::1;:22:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;4430:97::o;5236:569::-;5344:17;;;5307:7;5344:17;;;:9;:17;;;;;;;;5307:7;5375:5;:26;;;;;;;;:::i;:::-;;5371:428;;5444:6;5424:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5417:51;5236:569;-1:-1:-1;;;5236:569:234:o;5371:428::-;5498:20;5489:5;:29;;;;;;;;:::i;:::-;;5485:314;;5566:6;5541:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5485:314;5623:18;5614:5;:27;;;;;;;;:::i;:::-;;5610:189;;5664:14;;;5690:26;;;5664:14;5690:26;;;:18;:26;;;;;;;5664:53;;;;;:14;;;;;:25;;:53;;5690:26;5664:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5610:189;5748:40;;;;;9399:2:357;5748:40:234;;;9381:21:357;9438:2;9418:18;;;9411:30;9477:32;9457:18;;;9450:60;9527:18;;5748:40:234;;;;;;;;5610:189;5316:489;5236:569;;;:::o;2087:52::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1831:101:40:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;6689:531:234:-;1094:13:40;:11;:13::i;:::-;6805:17:234::1;::::0;::::1;6787:15;6805:17:::0;;;:9:::1;:17;::::0;;;;;::::1;;::::0;6836:5:::1;:26;;;;;;;;:::i;:::-;::::0;6832:382:::1;;6878:36;::::0;;;;:25:::1;1192:55:357::0;;;6878:36:234::1;::::0;::::1;1174:74:357::0;6878:25:234;::::1;::::0;::::1;::::0;1147:18:357;;6878:36:234::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6777:443;6689:531:::0;;:::o;6832:382::-:1;6944:20;6935:5;:29;;;;;;;;:::i;:::-;::::0;6931:283:::1;;6980:45;::::0;;;;:34:::1;1192:55:357::0;;;6980:45:234::1;::::0;::::1;1174:74:357::0;6980:34:234;::::1;::::0;::::1;::::0;1147:18:357;;6980:45:234::1;1028:226:357::0;6931:283:234::1;7055:18;7046:5;:27;;;;;;;;:::i;:::-;::::0;7042:172:::1;;7089:14;::::0;:43:::1;::::0;;;;:14:::1;1192:55:357::0;;;7089:43:234::1;::::0;::::1;1174:74:357::0;7089:14:234;;::::1;::::0;:32:::1;::::0;1147:18:357;;7089:43:234::1;1028:226:357::0;7042:172:234::1;6777:443;6689:531:::0;;:::o;3219:142::-;1094:13:40;:11;:13::i;:::-;3318:28:234::1;::::0;::::1;;::::0;;;:18:::1;:28;::::0;;;;:36:::1;3349:5:::0;3318:28;:36:::1;:::i;2796:120::-:0;1094:13:40;:11;:13::i;:::-;2882:19:234::1;::::0;::::1;;::::0;;;:9:::1;:19;::::0;;;;;;;:27;;2904:5;;2882:27;;;::::1;::::0;2904:5;2882:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;2796:120:::0;;:::o;8644:631::-;1094:13:40;:11;:13::i;:::-;8850:17:234::1;::::0;::::1;8832:15;8850:17:::0;;;:9:::1;:17;::::0;;;;;::::1;;::::0;8881:5:::1;:26;;;;;;;;:::i;:::-;::::0;8877:392:::1;;8923:74;::::0;;;;:30:::1;::::0;::::1;::::0;::::1;::::0;8962:9:::1;::::0;8923:74:::1;::::0;8974:15;;8991:5;;8923:74:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;8877:392;;;9076:32;9084:6;9092:15;9076:7;:32::i;:::-;9123:12;9140:6;:11;;9160:9;9172:5;9140:38;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9122:56;;;9200:7;9192:66;;;::::0;::::1;::::0;;13277:2:357;9192:66:234::1;::::0;::::1;13259:21:357::0;13316:2;13296:18;;;13289:30;13355:34;13335:18;;;13328:62;13426:16;13406:18;;;13399:44;13460:19;;9192:66:234::1;13075:410:357::0;9192:66:234::1;9014:255;8877:392;8822:453;8644:631:::0;;;:::o;7423:816::-;1094:13:40;:11;:13::i;:::-;7534:17:234::1;::::0;::::1;7516:15;7534:17:::0;;;:9:::1;:17;::::0;;;;;::::1;;::::0;7565:5:::1;:26;;;;;;;;:::i;:::-;::::0;7561:672:::1;;7607:40;::::0;;;;:23:::1;1192:55:357::0;;;7607:40:234::1;::::0;::::1;1174:74:357::0;7607:23:234;::::1;::::0;::::1;::::0;1147:18:357;;7607:40:234::1;1028:226:357::0;7561:672:234::1;7677:20;7668:5;:29;;;;;;;;:::i;:::-;::::0;7664:569:::1;;7713:150;::::0;;;;1614:66:192::1;7713:150:234;::::0;::::1;13664:25:357::0;7713:36:234::1;7815:33:::0;;::::1;13705:18:357::0;;;13698:34;7713:36:234;::::1;::::0;::::1;::::0;13637:18:357;;7713:150:234::1;13490:248:357::0;7664:569:234::1;7893:18;7884:5;:27;;;;;;;;:::i;:::-;::::0;7880:353:::1;;7948:26;::::0;::::1;7927:18;7948:26:::0;;;:18:::1;:26;::::0;;;;7927:47;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7988:14:234::1;::::0;:48:::1;::::0;;;;7927:47;;-1:-1:-1;7988:14:234::1;;::::0;:25:::1;::::0;-1:-1:-1;7988:48:234::1;::::0;-1:-1:-1;7927:47:234;;-1:-1:-1;8020:15:234;;7988:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7913:134;6777:443;6689:531:::0;;:::o;7880:353::-:1;8209:13;;:::i;4126:137::-:0;1094:13:40;:11;:13::i;:::-;4214:14:234::1;::::0;:42:::1;::::0;;;;:14:::1;::::0;;::::1;::::0;:25:::1;::::0;:42:::1;::::0;4240:5;;4247:8;;4214:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4126:137:::0;;:::o;2081:198:40:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;14479:2:357;2161:73:40::1;::::0;::::1;14461:21:357::0;14518:2;14498:18;;;14491:30;14557:34;14537:18;;;14530:62;14628:8;14608:18;;;14601:36;14654:19;;2161:73:40::1;14277:402:357::0;2161:73:40::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;5988:519:234:-;6095:17;;;6058:7;6095:17;;;:9;:17;;;;;;;;6058:7;6126:5;:26;;;;;;;;:::i;:::-;;6122:379;;6195:6;6175:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6122:379;6240:20;6231:5;:29;;;;;;;;:::i;:::-;;6227:274;;6308:6;6283:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:274;6356:18;6347:5;:27;;;;;;;;:::i;:::-;;6343:158;;6397:14;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1359:130:40;1247:7;1273:6;1422:23;1273:6;719:10:60;1422:23:40;1414:68;;;;;;;14886:2:357;1414:68:40;;;14868:21:357;;;14905:18;;;14898:30;14964:34;14944:18;;;14937:62;15016:18;;1414:68:40;14684:356:357;2433:187:40;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:170:357:-;116:42;109:5;105:54;98:5;95:65;85:93;;174:1;171;164:12;189:288;273:6;326:2;314:9;305:7;301:23;297:32;294:52;;;342:1;339;332:12;294:52;381:9;368:23;400:47;441:5;400:47;:::i;482:273::-;538:6;591:2;579:9;570:7;566:23;562:32;559:52;;;607:1;604;597:12;559:52;646:9;633:23;699:5;692:13;685:21;678:5;675:32;665:60;;721:1;718;711:12;1259:258;1331:1;1341:113;1355:6;1352:1;1349:13;1341:113;;;1431:11;;;1425:18;1412:11;;;1405:39;1377:2;1370:10;1341:113;;;1472:6;1469:1;1466:13;1463:48;;;-1:-1:-1;;1507:1:357;1489:16;;1482:27;1259:258::o;1522:317::-;1564:3;1602:5;1596:12;1629:6;1624:3;1617:19;1645:63;1701:6;1694:4;1689:3;1685:14;1678:4;1671:5;1667:16;1645:63;:::i;:::-;1753:2;1741:15;1758:66;1737:88;1728:98;;;;1828:4;1724:109;;1522:317;-1:-1:-1;;1522:317:357:o;1844:220::-;1993:2;1982:9;1975:21;1956:4;2013:45;2054:2;2043:9;2039:18;2031:6;2013:45;:::i;2325:184::-;2377:77;2374:1;2367:88;2474:4;2471:1;2464:15;2498:4;2495:1;2488:15;2514:401;2662:2;2647:18;;2695:1;2684:13;;2674:201;;2731:77;2728:1;2721:88;2832:4;2829:1;2822:15;2860:4;2857:1;2850:15;2674:201;2884:25;;;2514:401;:::o;2920:428::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3112:9;3099:23;3131:47;3172:5;3131:47;:::i;:::-;3197:5;-1:-1:-1;3254:2:357;3239:18;;3226:32;3267:49;3226:32;3267:49;:::i;:::-;3335:7;3325:17;;;2920:428;;;;;:::o;3353:184::-;3405:77;3402:1;3395:88;3502:4;3499:1;3492:15;3526:4;3523:1;3516:15;3542:334;3613:2;3607:9;3669:2;3659:13;;3674:66;3655:86;3643:99;;3772:18;3757:34;;3793:22;;;3754:62;3751:88;;;3819:18;;:::i;:::-;3855:2;3848:22;3542:334;;-1:-1:-1;3542:334:357:o;3881:246::-;3930:4;3963:18;3955:6;3952:30;3949:56;;;3985:18;;:::i;:::-;-1:-1:-1;4042:2:357;4030:15;4047:66;4026:88;4116:4;4022:99;;3881:246::o;4132:338::-;4197:5;4226:53;4242:36;4271:6;4242:36;:::i;:::-;4226:53;:::i;:::-;4217:62;;4302:6;4295:5;4288:21;4342:3;4333:6;4328:3;4324:16;4321:25;4318:45;;;4359:1;4356;4349:12;4318:45;4408:6;4403:3;4396:4;4389:5;4385:16;4372:43;4462:1;4455:4;4446:6;4439:5;4435:18;4431:29;4424:40;4132:338;;;;;:::o;4475:222::-;4518:5;4571:3;4564:4;4556:6;4552:17;4548:27;4538:55;;4589:1;4586;4579:12;4538:55;4611:80;4687:3;4678:6;4665:20;4658:4;4650:6;4646:17;4611:80;:::i;4702:473::-;4780:6;4788;4841:2;4829:9;4820:7;4816:23;4812:32;4809:52;;;4857:1;4854;4847:12;4809:52;4896:9;4883:23;4915:47;4956:5;4915:47;:::i;:::-;4981:5;-1:-1:-1;5037:2:357;5022:18;;5009:32;5064:18;5053:30;;5050:50;;;5096:1;5093;5086:12;5050:50;5119;5161:7;5152:6;5141:9;5137:22;5119:50;:::i;:::-;5109:60;;;4702:473;;;;;:::o;5180:429::-;5264:6;5272;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5380:9;5367:23;5399:47;5440:5;5399:47;:::i;:::-;5465:5;-1:-1:-1;5522:2:357;5507:18;;5494:32;5557:1;5545:14;;5535:42;;5573:1;5570;5563:12;5614:766;5708:6;5716;5724;5777:2;5765:9;5756:7;5752:23;5748:32;5745:52;;;5793:1;5790;5783:12;5745:52;5832:9;5819:23;5851:47;5892:5;5851:47;:::i;:::-;5917:5;-1:-1:-1;5974:2:357;5959:18;;5946:32;5987:49;5946:32;5987:49;:::i;:::-;6055:7;-1:-1:-1;6113:2:357;6098:18;;6085:32;6140:18;6129:30;;6126:50;;;6172:1;6169;6162:12;6126:50;6195:22;;6248:4;6240:13;;6236:27;-1:-1:-1;6226:55:357;;6277:1;6274;6267:12;6226:55;6300:74;6366:7;6361:2;6348:16;6343:2;6339;6335:11;6300:74;:::i;:::-;6290:84;;;5614:766;;;;;:::o;6385:473::-;6463:6;6471;6524:2;6512:9;6503:7;6499:23;6495:32;6492:52;;;6540:1;6537;6530:12;6492:52;6580:9;6567:23;6613:18;6605:6;6602:30;6599:50;;;6645:1;6642;6635:12;6599:50;6668;6710:7;6701:6;6690:9;6686:22;6668:50;:::i;:::-;6658:60;;;6768:2;6757:9;6753:18;6740:32;6781:47;6822:5;6781:47;:::i;7331:267::-;7401:6;7454:2;7442:9;7433:7;7429:23;7425:32;7422:52;;;7470:1;7467;7460:12;7422:52;7502:9;7496:16;7521:47;7562:5;7521:47;:::i;7603:437::-;7682:1;7678:12;;;;7725;;;7746:61;;7800:4;7792:6;7788:17;7778:27;;7746:61;7853:2;7845:6;7842:14;7822:18;7819:38;7816:218;;7890:77;7887:1;7880:88;7991:4;7988:1;7981:15;8019:4;8016:1;8009:15;8171:1021;8280:4;8309:2;8338;8327:9;8320:21;8361:1;8394:6;8388:13;8424:36;8450:9;8424:36;:::i;:::-;8496:6;8491:2;8480:9;8476:18;8469:34;8522:2;8543:1;8575:2;8564:9;8560:18;8592:1;8587:216;;;;8817:1;8812:354;;;;8553:613;;8587:216;8650:66;8639:9;8635:82;8630:2;8619:9;8615:18;8608:110;8790:2;8778:6;8771:14;8764:22;8761:1;8757:30;8746:9;8742:46;8738:55;8731:62;;8587:216;;8812:354;8843:6;8840:1;8833:17;8891:2;8888:1;8878:16;8916:1;8930:180;8944:6;8941:1;8938:13;8930:180;;;9037:14;;9013:17;;;9009:26;;9002:50;9080:16;;;;8959:10;;8930:180;;;9134:17;;9130:26;;;-1:-1:-1;;8553:613:357;-1:-1:-1;9183:3:357;;8171:1021;-1:-1:-1;;;;;;;;8171:1021:357:o;9556:545::-;9658:2;9653:3;9650:11;9647:448;;;9694:1;9719:5;9715:2;9708:17;9764:4;9760:2;9750:19;9834:2;9822:10;9818:19;9815:1;9811:27;9805:4;9801:38;9870:4;9858:10;9855:20;9852:47;;;-1:-1:-1;9893:4:357;9852:47;9948:2;9943:3;9939:12;9936:1;9932:20;9926:4;9922:31;9912:41;;10003:82;10021:2;10014:5;10011:13;10003:82;;;10066:17;;;10047:1;10036:13;10003:82;;10337:1471;10463:3;10457:10;10490:18;10482:6;10479:30;10476:56;;;10512:18;;:::i;:::-;10541:97;10631:6;10591:38;10623:4;10617:11;10591:38;:::i;:::-;10585:4;10541:97;:::i;:::-;10693:4;;10757:2;10746:14;;10774:1;10769:782;;;;11595:1;11612:6;11609:89;;;-1:-1:-1;11664:19:357;;;11658:26;11609:89;10243:66;10234:1;10230:11;;;10226:84;10222:89;10212:100;10318:1;10314:11;;;10209:117;11711:81;;10739:1063;;10769:782;8118:1;8111:14;;;8155:4;8142:18;;10817:66;10805:79;;;10982:236;10996:7;10993:1;10990:14;10982:236;;;11085:19;;;11079:26;11064:42;;11177:27;;;;11145:1;11133:14;;;;11012:19;;10982:236;;;10986:3;11246:6;11237:7;11234:19;11231:261;;;11307:19;;;11301:26;11408:66;11390:1;11386:14;;;11402:3;11382:24;11378:97;11374:102;11359:118;11344:134;;11231:261;-1:-1:-1;;;;;11538:1:357;11522:14;;;11518:22;11505:36;;-1:-1:-1;10337:1471:357:o;11813:338::-;12000:42;11992:6;11988:55;11977:9;11970:74;12080:2;12075;12064:9;12060:18;12053:30;11951:4;12100:45;12141:2;12130:9;12126:18;12118:6;12100:45;:::i;:::-;12092:53;11813:338;-1:-1:-1;;;;11813:338:357:o;12156:635::-;12235:6;12288:2;12276:9;12267:7;12263:23;12259:32;12256:52;;;12304:1;12301;12294:12;12256:52;12337:9;12331:16;12370:18;12362:6;12359:30;12356:50;;;12402:1;12399;12392:12;12356:50;12425:22;;12478:4;12470:13;;12466:27;-1:-1:-1;12456:55:357;;12507:1;12504;12497:12;12456:55;12536:2;12530:9;12561:49;12577:32;12606:2;12577:32;:::i;12561:49::-;12633:2;12626:5;12619:17;12673:7;12668:2;12663;12659;12655:11;12651:20;12648:33;12645:53;;;12694:1;12691;12684:12;12645:53;12707:54;12758:2;12753;12746:5;12742:14;12737:2;12733;12729:11;12707:54;:::i;:::-;12780:5;12156:635;-1:-1:-1;;;;;12156:635:357:o;12796:274::-;12925:3;12963:6;12957:13;12979:53;13025:6;13020:3;13013:4;13005:6;13001:17;12979:53;:::i;:::-;13048:16;;;;;12796:274;-1:-1:-1;;12796:274:357:o;13743:340::-;13920:2;13909:9;13902:21;13883:4;13940:45;13981:2;13970:9;13966:18;13958:6;13940:45;:::i;:::-;13932:53;;14033:42;14025:6;14021:55;14016:2;14005:9;14001:18;13994:83;13743:340;;;;;:::o;14088:184::-;14140:77;14137:1;14130:88;14237:4;14234:1;14227:15;14261:4;14258:1;14251:15","linkReferences":{}},"methodIdentifiers":{"addressManager()":"3ab76e9f","changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","implementationName(address)":"238181ae","isUpgrading()":"b7947262","owner()":"8da5cb5b","proxyType(address)":"6bd9f516","renounceOwnership()":"715018a6","setAddress(string,address)":"9b2ea4bd","setAddressManager(address)":"0652b57a","setImplementationName(address,string)":"860f7cda","setProxyType(address,uint8)":"8d52d4a0","setUpgrading(bool)":"07c8f7b0","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"addressManager\",\"outputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"implementationName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUpgrading\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"proxyType\",\"outputs\":[{\"internalType\":\"enum ProxyAdmin.ProxyType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setImplementationName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"enum ProxyAdmin.ProxyType\",\"name\":\"_type\",\"type\":\"uint8\"}],\"name\":\"setProxyType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_upgrading\",\"type\":\"bool\"}],\"name\":\"setUpgrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new proxy admin.\",\"_proxy\":\"Address of the proxy to update.\"}},\"constructor\":{\"params\":{\"_owner\":\"Address of the initial owner of this contract.\"}},\"getProxyAdmin(address)\":{\"params\":{\"_proxy\":\"Address of the proxy to get the admin of.\"},\"returns\":{\"_0\":\"Address of the admin of the proxy.\"}},\"getProxyImplementation(address)\":{\"params\":{\"_proxy\":\"Address of the proxy to get the implementation of.\"},\"returns\":{\"_0\":\"Address of the implementation of the proxy.\"}},\"isUpgrading()\":{\"custom:legacy\":\"@notice Legacy function used to tell ChugSplashProxy contracts if an upgrade is happening.\",\"returns\":{\"_0\":\"Whether or not there is an upgrade going on. May not actually tell you whether an upgrade is going on, since we don't currently plan to use this variable for anything other than a legacy indicator to fix a UX bug in the ChugSplash proxy.\"}},\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(string,address)\":{\"custom:legacy\":\"@notice Set an address in the address manager. Since only the owner of the AddressManager can directly modify addresses and the ProxyAdmin will own the AddressManager, this gives the owner of the ProxyAdmin the ability to modify addresses directly.\",\"params\":{\"_address\":\"Address to attach to the given name.\",\"_name\":\"Name to set within the AddressManager.\"}},\"setAddressManager(address)\":{\"params\":{\"_address\":\"Address of the AddressManager.\"}},\"setImplementationName(address,string)\":{\"params\":{\"_address\":\"Address of the ResolvedDelegateProxy.\",\"_name\":\"Name of the implementation for the proxy.\"}},\"setProxyType(address,uint8)\":{\"params\":{\"_address\":\"Address of the proxy.\",\"_type\":\"Type of the proxy.\"}},\"setUpgrading(bool)\":{\"custom:legacy\":\"@notice Set the upgrading status for the Chugsplash proxy type.\",\"params\":{\"_upgrading\":\"Whether or not the system is upgrading.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the new implementation address.\",\"_proxy\":\"Address of the proxy to upgrade.\"}},\"upgradeAndCall(address,address,bytes)\":{\"params\":{\"_data\":\"Data to trigger the new implementation with.\",\"_implementation\":\"Address of the new implementation address.\",\"_proxy\":\"Address of the proxy to upgrade.\"}}},\"title\":\"ProxyAdmin\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addressManager()\":{\"notice\":\"The address of the address manager, this is required to manage the ResolvedDelegateProxy type.\"},\"changeProxyAdmin(address,address)\":{\"notice\":\"Updates the admin of the given proxy address.\"},\"getProxyAdmin(address)\":{\"notice\":\"Returns the admin of the given proxy address.\"},\"getProxyImplementation(address)\":{\"notice\":\"Returns the implementation of the given proxy address.\"},\"implementationName(address)\":{\"notice\":\"A reverse mapping of addresses to names held in the AddressManager. This must be manually kept up to date with changes in the AddressManager for this contract to be able to work as an admin for the ResolvedDelegateProxy type.\"},\"proxyType(address)\":{\"notice\":\"A mapping of proxy types, used for backwards compatibility.\"},\"setAddressManager(address)\":{\"notice\":\"Set the address of the AddressManager. This is required to manage legacy ResolvedDelegateProxy type proxy contracts.\"},\"setImplementationName(address,string)\":{\"notice\":\"Sets the implementation name for a given address. Only required for ResolvedDelegateProxy type proxies that have an implementation name.\"},\"setProxyType(address,uint8)\":{\"notice\":\"Sets the proxy type for a given address. Only required for non-standard (legacy) proxy types.\"},\"upgrade(address,address)\":{\"notice\":\"Changes a proxy's implementation contract.\"},\"upgradeAndCall(address,address,bytes)\":{\"notice\":\"Changes a proxy's implementation contract and delegatecalls the new implementation with some given data. Useful for atomic upgrade-and-initialize calls.\"}},\"notice\":\"This is an auxiliary contract meant to be assigned as the admin of an ERC1967 Proxy, based on the OpenZeppelin implementation. It has backwards compatibility logic to work with the various types of proxies that have been deployed by Optimism in the past.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]},\"src/legacy/L1ChugSplashProxy.sol\":{\"keccak256\":\"0xdde5626645fa217ad3a37805c4c3012e4251de01df868aae73b986f5d03cdb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a99fd0ec440c17c826465001dc88c5185dd41dc72396254fdd3cdfcc84aeae8c\",\"dweb:/ipfs/QmStHuecN89zBL8FH9SUK1TtkyYwfzMY2KkQaFJLHZLuyA\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/universal/Proxy.sol\":{\"keccak256\":\"0x4f6f02e154bbb37137bcedcc256bef1e647865c79ec694fcaf5b6968799d7ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00df4d4c6f4813c883eb33e1ec812c953840e78237fecf09c5739389c0777223\",\"dweb:/ipfs/QmQ1D5j7EwxBPtbQju55hKFQuruAwm8gnPHUTSXtDFjHUe\"]},\"src/universal/ProxyAdmin.sol\":{\"keccak256\":\"0xd15267cf5ed8c24d5a0f2099b8d470178d7ad729db52be16232eb143620b8dcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9300ee0feb16fcf6c06ee541f2496eac533256bd97f79fe2128527d2f096894\",\"dweb:/ipfs/Qme3Md8pGSnjkG94WFXUdi5UF3a47BTQgKCdGmTKcMgcRa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"addressManager","outputs":[{"internalType":"contract AddressManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeProxyAdmin"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"implementationName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isUpgrading","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"proxyType","outputs":[{"internalType":"enum ProxyAdmin.ProxyType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"contract AddressManager","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddressManager"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationName"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"enum ProxyAdmin.ProxyType","name":"_type","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setProxyType"},{"inputs":[{"internalType":"bool","name":"_upgrading","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setUpgrading"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeAndCall"}],"devdoc":{"kind":"dev","methods":{"changeProxyAdmin(address,address)":{"params":{"_newAdmin":"Address of the new proxy admin.","_proxy":"Address of the proxy to update."}},"constructor":{"params":{"_owner":"Address of the initial owner of this contract."}},"getProxyAdmin(address)":{"params":{"_proxy":"Address of the proxy to get the admin of."},"returns":{"_0":"Address of the admin of the proxy."}},"getProxyImplementation(address)":{"params":{"_proxy":"Address of the proxy to get the implementation of."},"returns":{"_0":"Address of the implementation of the proxy."}},"isUpgrading()":{"custom:legacy":"@notice Legacy function used to tell ChugSplashProxy contracts if an upgrade is happening.","returns":{"_0":"Whether or not there is an upgrade going on. May not actually tell you whether an upgrade is going on, since we don't currently plan to use this variable for anything other than a legacy indicator to fix a UX bug in the ChugSplash proxy."}},"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"custom:legacy":"@notice Set an address in the address manager. Since only the owner of the AddressManager can directly modify addresses and the ProxyAdmin will own the AddressManager, this gives the owner of the ProxyAdmin the ability to modify addresses directly.","params":{"_address":"Address to attach to the given name.","_name":"Name to set within the AddressManager."}},"setAddressManager(address)":{"params":{"_address":"Address of the AddressManager."}},"setImplementationName(address,string)":{"params":{"_address":"Address of the ResolvedDelegateProxy.","_name":"Name of the implementation for the proxy."}},"setProxyType(address,uint8)":{"params":{"_address":"Address of the proxy.","_type":"Type of the proxy."}},"setUpgrading(bool)":{"custom:legacy":"@notice Set the upgrading status for the Chugsplash proxy type.","params":{"_upgrading":"Whether or not the system is upgrading."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"params":{"_implementation":"Address of the new implementation address.","_proxy":"Address of the proxy to upgrade."}},"upgradeAndCall(address,address,bytes)":{"params":{"_data":"Data to trigger the new implementation with.","_implementation":"Address of the new implementation address.","_proxy":"Address of the proxy to upgrade."}}},"version":1},"userdoc":{"kind":"user","methods":{"addressManager()":{"notice":"The address of the address manager, this is required to manage the ResolvedDelegateProxy type."},"changeProxyAdmin(address,address)":{"notice":"Updates the admin of the given proxy address."},"getProxyAdmin(address)":{"notice":"Returns the admin of the given proxy address."},"getProxyImplementation(address)":{"notice":"Returns the implementation of the given proxy address."},"implementationName(address)":{"notice":"A reverse mapping of addresses to names held in the AddressManager. This must be manually kept up to date with changes in the AddressManager for this contract to be able to work as an admin for the ResolvedDelegateProxy type."},"proxyType(address)":{"notice":"A mapping of proxy types, used for backwards compatibility."},"setAddressManager(address)":{"notice":"Set the address of the AddressManager. This is required to manage legacy ResolvedDelegateProxy type proxy contracts."},"setImplementationName(address,string)":{"notice":"Sets the implementation name for a given address. Only required for ResolvedDelegateProxy type proxies that have an implementation name."},"setProxyType(address,uint8)":{"notice":"Sets the proxy type for a given address. Only required for non-standard (legacy) proxy types."},"upgrade(address,address)":{"notice":"Changes a proxy's implementation contract."},"upgradeAndCall(address,address,bytes)":{"notice":"Changes a proxy's implementation contract and delegatecalls the new implementation with some given data. Useful for atomic upgrade-and-initialize calls."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ProxyAdmin.sol":"ProxyAdmin"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"},"src/legacy/L1ChugSplashProxy.sol":{"keccak256":"0xdde5626645fa217ad3a37805c4c3012e4251de01df868aae73b986f5d03cdb23","urls":["bzz-raw://a99fd0ec440c17c826465001dc88c5185dd41dc72396254fdd3cdfcc84aeae8c","dweb:/ipfs/QmStHuecN89zBL8FH9SUK1TtkyYwfzMY2KkQaFJLHZLuyA"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/universal/Proxy.sol":{"keccak256":"0x4f6f02e154bbb37137bcedcc256bef1e647865c79ec694fcaf5b6968799d7ddc","urls":["bzz-raw://00df4d4c6f4813c883eb33e1ec812c953840e78237fecf09c5739389c0777223","dweb:/ipfs/QmQ1D5j7EwxBPtbQju55hKFQuruAwm8gnPHUTSXtDFjHUe"],"license":"MIT"},"src/universal/ProxyAdmin.sol":{"keccak256":"0xd15267cf5ed8c24d5a0f2099b8d470178d7ad729db52be16232eb143620b8dcf","urls":["bzz-raw://e9300ee0feb16fcf6c06ee541f2496eac533256bd97f79fe2128527d2f096894","dweb:/ipfs/Qme3Md8pGSnjkG94WFXUdi5UF3a47BTQgKCdGmTKcMgcRa"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49330,"contract":"src/universal/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":110483,"contract":"src/universal/ProxyAdmin.sol:ProxyAdmin","label":"proxyType","offset":0,"slot":"1","type":"t_mapping(t_address,t_enum(ProxyType)110477)"},{"astId":110488,"contract":"src/universal/ProxyAdmin.sol:ProxyAdmin","label":"implementationName","offset":0,"slot":"2","type":"t_mapping(t_address,t_string_storage)"},{"astId":110492,"contract":"src/universal/ProxyAdmin.sol:ProxyAdmin","label":"addressManager","offset":0,"slot":"3","type":"t_contract(AddressManager)102008"},{"astId":110495,"contract":"src/universal/ProxyAdmin.sol:ProxyAdmin","label":"upgrading","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(AddressManager)102008":{"encoding":"inplace","label":"contract AddressManager","numberOfBytes":"20"},"t_enum(ProxyType)110477":{"encoding":"inplace","label":"enum ProxyAdmin.ProxyType","numberOfBytes":"1"},"t_mapping(t_address,t_enum(ProxyType)110477)":{"encoding":"mapping","key":"t_address","label":"mapping(address => enum ProxyAdmin.ProxyType)","numberOfBytes":"32","value":"t_enum(ProxyType)110477"},"t_mapping(t_address,t_string_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"addressManager()":{"notice":"The address of the address manager, this is required to manage the ResolvedDelegateProxy type."},"changeProxyAdmin(address,address)":{"notice":"Updates the admin of the given proxy address."},"getProxyAdmin(address)":{"notice":"Returns the admin of the given proxy address."},"getProxyImplementation(address)":{"notice":"Returns the implementation of the given proxy address."},"implementationName(address)":{"notice":"A reverse mapping of addresses to names held in the AddressManager. This must be manually kept up to date with changes in the AddressManager for this contract to be able to work as an admin for the ResolvedDelegateProxy type."},"proxyType(address)":{"notice":"A mapping of proxy types, used for backwards compatibility."},"setAddressManager(address)":{"notice":"Set the address of the AddressManager. This is required to manage legacy ResolvedDelegateProxy type proxy contracts."},"setImplementationName(address,string)":{"notice":"Sets the implementation name for a given address. Only required for ResolvedDelegateProxy type proxies that have an implementation name."},"setProxyType(address,uint8)":{"notice":"Sets the proxy type for a given address. Only required for non-standard (legacy) proxy types."},"upgrade(address,address)":{"notice":"Changes a proxy's implementation contract."},"upgradeAndCall(address,address,bytes)":{"notice":"Changes a proxy's implementation contract and delegatecalls the new implementation with some given data. Useful for atomic upgrade-and-initialize calls."}},"notice":"This is an auxiliary contract meant to be assigned as the admin of an ERC1967 Proxy, based on the OpenZeppelin implementation. It has backwards compatibility logic to work with the various types of proxies that have been deployed by Optimism in the past."},"devdoc":{"version":1,"kind":"dev","methods":{"changeProxyAdmin(address,address)":{"params":{"_newAdmin":"Address of the new proxy admin.","_proxy":"Address of the proxy to update."}},"constructor":{"params":{"_owner":"Address of the initial owner of this contract."}},"getProxyAdmin(address)":{"params":{"_proxy":"Address of the proxy to get the admin of."},"returns":{"_0":"Address of the admin of the proxy."}},"getProxyImplementation(address)":{"params":{"_proxy":"Address of the proxy to get the implementation of."},"returns":{"_0":"Address of the implementation of the proxy."}},"isUpgrading()":{"returns":{"_0":"Whether or not there is an upgrade going on. May not actually tell you whether an upgrade is going on, since we don't currently plan to use this variable for anything other than a legacy indicator to fix a UX bug in the ChugSplash proxy."}},"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to attach to the given name.","_name":"Name to set within the AddressManager."}},"setAddressManager(address)":{"params":{"_address":"Address of the AddressManager."}},"setImplementationName(address,string)":{"params":{"_address":"Address of the ResolvedDelegateProxy.","_name":"Name of the implementation for the proxy."}},"setProxyType(address,uint8)":{"params":{"_address":"Address of the proxy.","_type":"Type of the proxy."}},"setUpgrading(bool)":{"params":{"_upgrading":"Whether or not the system is upgrading."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"params":{"_implementation":"Address of the new implementation address.","_proxy":"Address of the proxy to upgrade."}},"upgradeAndCall(address,address,bytes)":{"params":{"_data":"Data to trigger the new implementation with.","_implementation":"Address of the new implementation address.","_proxy":"Address of the proxy to upgrade."}}},"title":"ProxyAdmin"},"ast":{"absolutePath":"src/universal/ProxyAdmin.sol","id":110910,"exportedSymbols":{"AddressManager":[102008],"Constants":[103096],"IStaticERC1967Proxy":[110458],"IStaticL1ChugSplashProxy":[110470],"L1ChugSplashProxy":[102516],"Ownable":[49435],"Proxy":[110434],"ProxyAdmin":[110909]},"nodeType":"SourceUnit","src":"32:9246:234","nodes":[{"id":110436,"nodeType":"PragmaDirective","src":"32:23:234","nodes":[],"literals":["solidity","0.8",".15"]},{"id":110438,"nodeType":"ImportDirective","src":"57:69:234","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":110910,"sourceUnit":49436,"symbolAliases":[{"foreign":{"id":110437,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"66:7:234","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110440,"nodeType":"ImportDirective","src":"127:48:234","nodes":[],"absolutePath":"src/universal/Proxy.sol","file":"src/universal/Proxy.sol","nameLocation":"-1:-1:-1","scope":110910,"sourceUnit":110435,"symbolAliases":[{"foreign":{"id":110439,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110434,"src":"136:5:234","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110442,"nodeType":"ImportDirective","src":"176:63:234","nodes":[],"absolutePath":"src/legacy/AddressManager.sol","file":"src/legacy/AddressManager.sol","nameLocation":"-1:-1:-1","scope":110910,"sourceUnit":102009,"symbolAliases":[{"foreign":{"id":110441,"name":"AddressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102008,"src":"185:14:234","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110444,"nodeType":"ImportDirective","src":"240:69:234","nodes":[],"absolutePath":"src/legacy/L1ChugSplashProxy.sol","file":"src/legacy/L1ChugSplashProxy.sol","nameLocation":"-1:-1:-1","scope":110910,"sourceUnit":102517,"symbolAliases":[{"foreign":{"id":110443,"name":"L1ChugSplashProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102516,"src":"249:17:234","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110446,"nodeType":"ImportDirective","src":"310:56:234","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":110910,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":110445,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"319:9:234","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":110458,"nodeType":"ContractDefinition","src":"483:151:234","nodes":[{"id":110452,"nodeType":"FunctionDefinition","src":"519:58:234","nodes":[],"functionSelector":"5c60da1b","implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"528:14:234","parameters":{"id":110448,"nodeType":"ParameterList","parameters":[],"src":"542:2:234"},"returnParameters":{"id":110451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110452,"src":"568:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110449,"name":"address","nodeType":"ElementaryTypeName","src":"568:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"567:9:234"},"scope":110458,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":110457,"nodeType":"FunctionDefinition","src":"583:49:234","nodes":[],"functionSelector":"f851a440","implemented":false,"kind":"function","modifiers":[],"name":"admin","nameLocation":"592:5:234","parameters":{"id":110453,"nodeType":"ParameterList","parameters":[],"src":"597:2:234"},"returnParameters":{"id":110456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110457,"src":"623:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110454,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"622:9:234"},"scope":110458,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IStaticERC1967Proxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":110447,"nodeType":"StructuredDocumentation","src":"368:115:234","text":"@title IStaticERC1967Proxy\n @notice IStaticERC1967Proxy is a static version of the ERC1967 proxy interface."},"fullyImplemented":false,"linearizedBaseContracts":[110458],"name":"IStaticERC1967Proxy","nameLocation":"493:19:234","scope":110910,"usedErrors":[]},{"id":110470,"nodeType":"ContractDefinition","src":"764:162:234","nodes":[{"id":110464,"nodeType":"FunctionDefinition","src":"805:61:234","nodes":[],"functionSelector":"aaf10f42","implemented":false,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"814:17:234","parameters":{"id":110460,"nodeType":"ParameterList","parameters":[],"src":"831:2:234"},"returnParameters":{"id":110463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110464,"src":"857:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110461,"name":"address","nodeType":"ElementaryTypeName","src":"857:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"856:9:234"},"scope":110470,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":110469,"nodeType":"FunctionDefinition","src":"872:52:234","nodes":[],"functionSelector":"893d20e8","implemented":false,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"881:8:234","parameters":{"id":110465,"nodeType":"ParameterList","parameters":[],"src":"889:2:234"},"returnParameters":{"id":110468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110469,"src":"915:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110466,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"914:9:234"},"scope":110470,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IStaticL1ChugSplashProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":110459,"nodeType":"StructuredDocumentation","src":"636:128:234","text":"@title IStaticL1ChugSplashProxy\n @notice IStaticL1ChugSplashProxy is a static version of the ChugSplash proxy interface."},"fullyImplemented":false,"linearizedBaseContracts":[110470],"name":"IStaticL1ChugSplashProxy","nameLocation":"774:24:234","scope":110910,"usedErrors":[]},{"id":110909,"nodeType":"ContractDefinition","src":"1241:8036:234","nodes":[{"id":110477,"nodeType":"EnumDefinition","src":"1602:76:234","nodes":[],"canonicalName":"ProxyAdmin.ProxyType","members":[{"id":110474,"name":"ERC1967","nameLocation":"1627:7:234","nodeType":"EnumValue","src":"1627:7:234"},{"id":110475,"name":"CHUGSPLASH","nameLocation":"1644:10:234","nodeType":"EnumValue","src":"1644:10:234"},{"id":110476,"name":"RESOLVED","nameLocation":"1664:8:234","nodeType":"EnumValue","src":"1664:8:234"}],"name":"ProxyType","nameLocation":"1607:9:234"},{"id":110483,"nodeType":"VariableDeclaration","src":"1760:46:234","nodes":[],"constant":false,"documentation":{"id":110478,"nodeType":"StructuredDocumentation","src":"1684:71:234","text":"@notice A mapping of proxy types, used for backwards compatibility."},"functionSelector":"6bd9f516","mutability":"mutable","name":"proxyType","nameLocation":"1797:9:234","scope":110909,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"},"typeName":{"id":110482,"keyType":{"id":110479,"name":"address","nodeType":"ElementaryTypeName","src":"1768:7:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1760:29:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"},"valueType":{"id":110481,"nodeType":"UserDefinedTypeName","pathNode":{"id":110480,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"1779:9:234"},"referencedDeclaration":110477,"src":"1779:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}}},"visibility":"public"},{"id":110488,"nodeType":"VariableDeclaration","src":"2087:52:234","nodes":[],"constant":false,"documentation":{"id":110484,"nodeType":"StructuredDocumentation","src":"1813:269:234","text":"@notice A reverse mapping of addresses to names held in the AddressManager. This must be\n manually kept up to date with changes in the AddressManager for this contract\n to be able to work as an admin for the ResolvedDelegateProxy type."},"functionSelector":"238181ae","mutability":"mutable","name":"implementationName","nameLocation":"2121:18:234","scope":110909,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":110487,"keyType":{"id":110485,"name":"address","nodeType":"ElementaryTypeName","src":"2095:7:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2087:26:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueType":{"id":110486,"name":"string","nodeType":"ElementaryTypeName","src":"2106:6:234","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"id":110492,"nodeType":"VariableDeclaration","src":"2273:36:234","nodes":[],"constant":false,"documentation":{"id":110489,"nodeType":"StructuredDocumentation","src":"2146:122:234","text":"@notice The address of the address manager, this is required to manage the\n ResolvedDelegateProxy type."},"functionSelector":"3ab76e9f","mutability":"mutable","name":"addressManager","nameLocation":"2295:14:234","scope":110909,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"},"typeName":{"id":110491,"nodeType":"UserDefinedTypeName","pathNode":{"id":110490,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":102008,"src":"2273:14:234"},"referencedDeclaration":102008,"src":"2273:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"visibility":"public"},{"id":110495,"nodeType":"VariableDeclaration","src":"2395:23:234","nodes":[],"constant":false,"documentation":{"id":110493,"nodeType":"StructuredDocumentation","src":"2316:74:234","text":"@notice A legacy upgrading indicator used by the old Chugsplash Proxy."},"mutability":"mutable","name":"upgrading","nameLocation":"2409:9:234","scope":110909,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110494,"name":"bool","nodeType":"ElementaryTypeName","src":"2395:4:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":110508,"nodeType":"FunctionDefinition","src":"2494:81:234","nodes":[],"body":{"id":110507,"nodeType":"Block","src":"2532:43:234","nodes":[],"statements":[{"expression":{"arguments":[{"id":110504,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110498,"src":"2561:6:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":110503,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49434,"src":"2542:18:234","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":110505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2542:26:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110506,"nodeType":"ExpressionStatement","src":"2542:26:234"}]},"documentation":{"id":110496,"nodeType":"StructuredDocumentation","src":"2425:64:234","text":"@param _owner Address of the initial owner of this contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":110501,"kind":"baseConstructorSpecifier","modifierName":{"id":110500,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":49435,"src":"2522:7:234"},"nodeType":"ModifierInvocation","src":"2522:9:234"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":110499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110498,"mutability":"mutable","name":"_owner","nameLocation":"2514:6:234","nodeType":"VariableDeclaration","scope":110508,"src":"2506:14:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110497,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2505:16:234"},"returnParameters":{"id":110502,"nodeType":"ParameterList","parameters":[],"src":"2532:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":110526,"nodeType":"FunctionDefinition","src":"2796:120:234","nodes":[],"body":{"id":110525,"nodeType":"Block","src":"2872:44:234","nodes":[],"statements":[{"expression":{"id":110523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":110519,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"2882:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110521,"indexExpression":{"id":110520,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110511,"src":"2892:8:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2882:19:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110522,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110514,"src":"2904:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"2882:27:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"id":110524,"nodeType":"ExpressionStatement","src":"2882:27:234"}]},"documentation":{"id":110509,"nodeType":"StructuredDocumentation","src":"2581:210:234","text":"@notice Sets the proxy type for a given address. Only required for non-standard (legacy)\n proxy types.\n @param _address Address of the proxy.\n @param _type Type of the proxy."},"functionSelector":"8d52d4a0","implemented":true,"kind":"function","modifiers":[{"id":110517,"kind":"modifierInvocation","modifierName":{"id":110516,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"2862:9:234"},"nodeType":"ModifierInvocation","src":"2862:9:234"}],"name":"setProxyType","nameLocation":"2805:12:234","parameters":{"id":110515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110511,"mutability":"mutable","name":"_address","nameLocation":"2826:8:234","nodeType":"VariableDeclaration","scope":110526,"src":"2818:16:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110510,"name":"address","nodeType":"ElementaryTypeName","src":"2818:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110514,"mutability":"mutable","name":"_type","nameLocation":"2846:5:234","nodeType":"VariableDeclaration","scope":110526,"src":"2836:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110513,"nodeType":"UserDefinedTypeName","pathNode":{"id":110512,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"2836:9:234"},"referencedDeclaration":110477,"src":"2836:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"src":"2817:35:234"},"returnParameters":{"id":110518,"nodeType":"ParameterList","parameters":[],"src":"2872:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110543,"nodeType":"FunctionDefinition","src":"3219:142:234","nodes":[],"body":{"id":110542,"nodeType":"Block","src":"3308:53:234","nodes":[],"statements":[{"expression":{"id":110540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":110536,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110488,"src":"3318:18:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":110538,"indexExpression":{"id":110537,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110529,"src":"3337:8:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3318:28:234","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110539,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110531,"src":"3349:5:234","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3318:36:234","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":110541,"nodeType":"ExpressionStatement","src":"3318:36:234"}]},"documentation":{"id":110527,"nodeType":"StructuredDocumentation","src":"2922:292:234","text":"@notice Sets the implementation name for a given address. Only required for\n ResolvedDelegateProxy type proxies that have an implementation name.\n @param _address Address of the ResolvedDelegateProxy.\n @param _name Name of the implementation for the proxy."},"functionSelector":"860f7cda","implemented":true,"kind":"function","modifiers":[{"id":110534,"kind":"modifierInvocation","modifierName":{"id":110533,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"3298:9:234"},"nodeType":"ModifierInvocation","src":"3298:9:234"}],"name":"setImplementationName","nameLocation":"3228:21:234","parameters":{"id":110532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110529,"mutability":"mutable","name":"_address","nameLocation":"3258:8:234","nodeType":"VariableDeclaration","scope":110543,"src":"3250:16:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110528,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110531,"mutability":"mutable","name":"_name","nameLocation":"3282:5:234","nodeType":"VariableDeclaration","scope":110543,"src":"3268:19:234","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":110530,"name":"string","nodeType":"ElementaryTypeName","src":"3268:6:234","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3249:39:234"},"returnParameters":{"id":110535,"nodeType":"ParameterList","parameters":[],"src":"3308:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110557,"nodeType":"FunctionDefinition","src":"3571:113:234","nodes":[],"body":{"id":110556,"nodeType":"Block","src":"3642:42:234","nodes":[],"statements":[{"expression":{"id":110554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110552,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"3652:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110553,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110547,"src":"3669:8:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"src":"3652:25:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110555,"nodeType":"ExpressionStatement","src":"3652:25:234"}]},"documentation":{"id":110544,"nodeType":"StructuredDocumentation","src":"3367:199:234","text":"@notice Set the address of the AddressManager. This is required to manage legacy\n ResolvedDelegateProxy type proxy contracts.\n @param _address Address of the AddressManager."},"functionSelector":"0652b57a","implemented":true,"kind":"function","modifiers":[{"id":110550,"kind":"modifierInvocation","modifierName":{"id":110549,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"3632:9:234"},"nodeType":"ModifierInvocation","src":"3632:9:234"}],"name":"setAddressManager","nameLocation":"3580:17:234","parameters":{"id":110548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110547,"mutability":"mutable","name":"_address","nameLocation":"3613:8:234","nodeType":"VariableDeclaration","scope":110557,"src":"3598:23:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"},"typeName":{"id":110546,"nodeType":"UserDefinedTypeName","pathNode":{"id":110545,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":102008,"src":"3598:14:234"},"referencedDeclaration":102008,"src":"3598:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"visibility":"internal"}],"src":"3597:25:234"},"returnParameters":{"id":110551,"nodeType":"ParameterList","parameters":[],"src":"3642:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110575,"nodeType":"FunctionDefinition","src":"4126:137:234","nodes":[],"body":{"id":110574,"nodeType":"Block","src":"4204:59:234","nodes":[],"statements":[{"expression":{"arguments":[{"id":110570,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110560,"src":"4240:5:234","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":110571,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110562,"src":"4247:8:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":110567,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"4214:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAddress","nodeType":"MemberAccess","referencedDeclaration":101976,"src":"4214:25:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) external"}},"id":110572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:42:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110573,"nodeType":"ExpressionStatement","src":"4214:42:234"}]},"documentation":{"id":110558,"nodeType":"StructuredDocumentation","src":"3690:431:234","text":"@custom:legacy\n @notice Set an address in the address manager. Since only the owner of the AddressManager\n can directly modify addresses and the ProxyAdmin will own the AddressManager, this\n gives the owner of the ProxyAdmin the ability to modify addresses directly.\n @param _name Name to set within the AddressManager.\n @param _address Address to attach to the given name."},"functionSelector":"9b2ea4bd","implemented":true,"kind":"function","modifiers":[{"id":110565,"kind":"modifierInvocation","modifierName":{"id":110564,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"4194:9:234"},"nodeType":"ModifierInvocation","src":"4194:9:234"}],"name":"setAddress","nameLocation":"4135:10:234","parameters":{"id":110563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110560,"mutability":"mutable","name":"_name","nameLocation":"4160:5:234","nodeType":"VariableDeclaration","scope":110575,"src":"4146:19:234","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":110559,"name":"string","nodeType":"ElementaryTypeName","src":"4146:6:234","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":110562,"mutability":"mutable","name":"_address","nameLocation":"4175:8:234","nodeType":"VariableDeclaration","scope":110575,"src":"4167:16:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110561,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4145:39:234"},"returnParameters":{"id":110566,"nodeType":"ParameterList","parameters":[],"src":"4204:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110588,"nodeType":"FunctionDefinition","src":"4430:97:234","nodes":[],"body":{"id":110587,"nodeType":"Block","src":"4488:39:234","nodes":[],"statements":[{"expression":{"id":110585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":110583,"name":"upgrading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110495,"src":"4498:9:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":110584,"name":"_upgrading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110578,"src":"4510:10:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4498:22:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":110586,"nodeType":"ExpressionStatement","src":"4498:22:234"}]},"documentation":{"id":110576,"nodeType":"StructuredDocumentation","src":"4269:156:234","text":"@custom:legacy\n @notice Set the upgrading status for the Chugsplash proxy type.\n @param _upgrading Whether or not the system is upgrading."},"functionSelector":"07c8f7b0","implemented":true,"kind":"function","modifiers":[{"id":110581,"kind":"modifierInvocation","modifierName":{"id":110580,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"4478:9:234"},"nodeType":"ModifierInvocation","src":"4478:9:234"}],"name":"setUpgrading","nameLocation":"4439:12:234","parameters":{"id":110579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110578,"mutability":"mutable","name":"_upgrading","nameLocation":"4457:10:234","nodeType":"VariableDeclaration","scope":110588,"src":"4452:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110577,"name":"bool","nodeType":"ElementaryTypeName","src":"4452:4:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4451:17:234"},"returnParameters":{"id":110582,"nodeType":"ParameterList","parameters":[],"src":"4488:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110597,"nodeType":"FunctionDefinition","src":"4941:85:234","nodes":[],"body":{"id":110596,"nodeType":"Block","src":"4993:33:234","nodes":[],"statements":[{"expression":{"id":110594,"name":"upgrading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110495,"src":"5010:9:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":110593,"id":110595,"nodeType":"Return","src":"5003:16:234"}]},"documentation":{"id":110589,"nodeType":"StructuredDocumentation","src":"4533:403:234","text":"@custom:legacy\n @notice Legacy function used to tell ChugSplashProxy contracts if an upgrade is happening.\n @return Whether or not there is an upgrade going on. May not actually tell you whether an\n upgrade is going on, since we don't currently plan to use this variable for anything\n other than a legacy indicator to fix a UX bug in the ChugSplash proxy."},"functionSelector":"b7947262","implemented":true,"kind":"function","modifiers":[],"name":"isUpgrading","nameLocation":"4950:11:234","parameters":{"id":110590,"nodeType":"ParameterList","parameters":[],"src":"4961:2:234"},"returnParameters":{"id":110593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110597,"src":"4987:4:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110591,"name":"bool","nodeType":"ElementaryTypeName","src":"4987:4:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4986:6:234"},"scope":110909,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":110655,"nodeType":"FunctionDefinition","src":"5236:569:234","nodes":[],"body":{"id":110654,"nodeType":"Block","src":"5316:489:234","nodes":[],"statements":[{"assignments":[110607],"declarations":[{"constant":false,"id":110607,"mutability":"mutable","name":"ptype","nameLocation":"5336:5:234","nodeType":"VariableDeclaration","scope":110654,"src":"5326:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110606,"nodeType":"UserDefinedTypeName","pathNode":{"id":110605,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"5326:9:234"},"referencedDeclaration":110477,"src":"5326:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"id":110611,"initialValue":{"baseExpression":{"id":110608,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"5344:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110610,"indexExpression":{"id":110609,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110600,"src":"5354:6:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5344:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"VariableDeclarationStatement","src":"5326:35:234"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110612,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110607,"src":"5375:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110613,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"5384:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC1967","nodeType":"MemberAccess","referencedDeclaration":110474,"src":"5384:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"5375:26:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110623,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110607,"src":"5489:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110624,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"5498:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHUGSPLASH","nodeType":"MemberAccess","referencedDeclaration":110475,"src":"5498:20:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"5489:29:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110634,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110607,"src":"5614:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110635,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"5623:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"RESOLVED","nodeType":"MemberAccess","referencedDeclaration":110476,"src":"5623:18:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"5614:27:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":110650,"nodeType":"Block","src":"5734:65:234","statements":[{"expression":{"arguments":[{"hexValue":"50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065","id":110647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5755:32:234","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""},"value":"ProxyAdmin: unknown proxy type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""}],"id":110646,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5748:6:234","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":110648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5748:40:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110649,"nodeType":"ExpressionStatement","src":"5748:40:234"}]},"id":110651,"nodeType":"IfStatement","src":"5610:189:234","trueBody":{"id":110645,"nodeType":"Block","src":"5643:85:234","statements":[{"expression":{"arguments":[{"baseExpression":{"id":110640,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110488,"src":"5690:18:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":110642,"indexExpression":{"id":110641,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110600,"src":"5709:6:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5690:26:234","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":110638,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"5664:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":101991,"src":"5664:25:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view external returns (address)"}},"id":110643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5664:53:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110604,"id":110644,"nodeType":"Return","src":"5657:60:234"}]}},"id":110652,"nodeType":"IfStatement","src":"5485:314:234","trueBody":{"id":110633,"nodeType":"Block","src":"5520:84:234","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":110628,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110600,"src":"5566:6:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":110627,"name":"IStaticL1ChugSplashProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110470,"src":"5541:24:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStaticL1ChugSplashProxy_$110470_$","typeString":"type(contract IStaticL1ChugSplashProxy)"}},"id":110629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5541:32:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStaticL1ChugSplashProxy_$110470","typeString":"contract IStaticL1ChugSplashProxy"}},"id":110630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":110464,"src":"5541:50:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":110631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5541:52:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110604,"id":110632,"nodeType":"Return","src":"5534:59:234"}]}},"id":110653,"nodeType":"IfStatement","src":"5371:428:234","trueBody":{"id":110622,"nodeType":"Block","src":"5403:76:234","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":110617,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110600,"src":"5444:6:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":110616,"name":"IStaticERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110458,"src":"5424:19:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStaticERC1967Proxy_$110458_$","typeString":"type(contract IStaticERC1967Proxy)"}},"id":110618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5424:27:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStaticERC1967Proxy_$110458","typeString":"contract IStaticERC1967Proxy"}},"id":110619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":110452,"src":"5424:42:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":110620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5424:44:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110604,"id":110621,"nodeType":"Return","src":"5417:51:234"}]}}]},"documentation":{"id":110598,"nodeType":"StructuredDocumentation","src":"5032:199:234","text":"@notice Returns the implementation of the given proxy address.\n @param _proxy Address of the proxy to get the implementation of.\n @return Address of the implementation of the proxy."},"functionSelector":"204e1c7a","implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"5245:22:234","parameters":{"id":110601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110600,"mutability":"mutable","name":"_proxy","nameLocation":"5276:6:234","nodeType":"VariableDeclaration","scope":110655,"src":"5268:14:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110599,"name":"address","nodeType":"ElementaryTypeName","src":"5268:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5267:16:234"},"returnParameters":{"id":110604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110655,"src":"5307:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110602,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5306:9:234"},"scope":110909,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":110710,"nodeType":"FunctionDefinition","src":"5988:519:234","nodes":[],"body":{"id":110709,"nodeType":"Block","src":"6067:440:234","nodes":[],"statements":[{"assignments":[110665],"declarations":[{"constant":false,"id":110665,"mutability":"mutable","name":"ptype","nameLocation":"6087:5:234","nodeType":"VariableDeclaration","scope":110709,"src":"6077:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110664,"nodeType":"UserDefinedTypeName","pathNode":{"id":110663,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"6077:9:234"},"referencedDeclaration":110477,"src":"6077:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"id":110669,"initialValue":{"baseExpression":{"id":110666,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"6095:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110668,"indexExpression":{"id":110667,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110658,"src":"6105:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6095:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"VariableDeclarationStatement","src":"6077:35:234"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110670,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110665,"src":"6126:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110671,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"6135:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC1967","nodeType":"MemberAccess","referencedDeclaration":110474,"src":"6135:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"6126:26:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110681,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110665,"src":"6231:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110682,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"6240:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHUGSPLASH","nodeType":"MemberAccess","referencedDeclaration":110475,"src":"6240:20:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"6231:29:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110692,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110665,"src":"6347:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110693,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"6356:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"RESOLVED","nodeType":"MemberAccess","referencedDeclaration":110476,"src":"6356:18:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"6347:27:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":110705,"nodeType":"Block","src":"6436:65:234","statements":[{"expression":{"arguments":[{"hexValue":"50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065","id":110702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6457:32:234","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""},"value":"ProxyAdmin: unknown proxy type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""}],"id":110701,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6450:6:234","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":110703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6450:40:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110704,"nodeType":"ExpressionStatement","src":"6450:40:234"}]},"id":110706,"nodeType":"IfStatement","src":"6343:158:234","trueBody":{"id":110700,"nodeType":"Block","src":"6376:54:234","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":110696,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"6397:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":49363,"src":"6397:20:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":110698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6397:22:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110662,"id":110699,"nodeType":"Return","src":"6390:29:234"}]}},"id":110707,"nodeType":"IfStatement","src":"6227:274:234","trueBody":{"id":110691,"nodeType":"Block","src":"6262:75:234","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":110686,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110658,"src":"6308:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110685,"name":"IStaticL1ChugSplashProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110470,"src":"6283:24:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStaticL1ChugSplashProxy_$110470_$","typeString":"type(contract IStaticL1ChugSplashProxy)"}},"id":110687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6283:32:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStaticL1ChugSplashProxy_$110470","typeString":"contract IStaticL1ChugSplashProxy"}},"id":110688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":110469,"src":"6283:41:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":110689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6283:43:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110662,"id":110690,"nodeType":"Return","src":"6276:50:234"}]}},"id":110708,"nodeType":"IfStatement","src":"6122:379:234","trueBody":{"id":110680,"nodeType":"Block","src":"6154:67:234","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":110675,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110658,"src":"6195:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110674,"name":"IStaticERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110458,"src":"6175:19:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStaticERC1967Proxy_$110458_$","typeString":"type(contract IStaticERC1967Proxy)"}},"id":110676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6175:27:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStaticERC1967Proxy_$110458","typeString":"contract IStaticERC1967Proxy"}},"id":110677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":110457,"src":"6175:33:234","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":110678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6175:35:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":110662,"id":110679,"nodeType":"Return","src":"6168:42:234"}]}}]},"documentation":{"id":110656,"nodeType":"StructuredDocumentation","src":"5811:172:234","text":"@notice Returns the admin of the given proxy address.\n @param _proxy Address of the proxy to get the admin of.\n @return Address of the admin of the proxy."},"functionSelector":"f3b7dead","implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"5997:13:234","parameters":{"id":110659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110658,"mutability":"mutable","name":"_proxy","nameLocation":"6027:6:234","nodeType":"VariableDeclaration","scope":110710,"src":"6011:22:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":110657,"name":"address","nodeType":"ElementaryTypeName","src":"6011:15:234","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"6010:24:234"},"returnParameters":{"id":110662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110710,"src":"6058:7:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110660,"name":"address","nodeType":"ElementaryTypeName","src":"6058:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6057:9:234"},"scope":110909,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":110771,"nodeType":"FunctionDefinition","src":"6689:531:234","nodes":[],"body":{"id":110770,"nodeType":"Block","src":"6777:443:234","nodes":[],"statements":[{"assignments":[110722],"declarations":[{"constant":false,"id":110722,"mutability":"mutable","name":"ptype","nameLocation":"6797:5:234","nodeType":"VariableDeclaration","scope":110770,"src":"6787:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110721,"nodeType":"UserDefinedTypeName","pathNode":{"id":110720,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"6787:9:234"},"referencedDeclaration":110477,"src":"6787:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"id":110726,"initialValue":{"baseExpression":{"id":110723,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"6805:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110725,"indexExpression":{"id":110724,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110713,"src":"6815:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6805:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"VariableDeclarationStatement","src":"6787:35:234"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110727,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110722,"src":"6836:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110728,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"6845:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC1967","nodeType":"MemberAccess","referencedDeclaration":110474,"src":"6845:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"6836:26:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110739,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110722,"src":"6935:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110740,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"6944:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHUGSPLASH","nodeType":"MemberAccess","referencedDeclaration":110475,"src":"6944:20:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"6935:29:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110751,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110722,"src":"7046:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110752,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"7055:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"RESOLVED","nodeType":"MemberAccess","referencedDeclaration":110476,"src":"7055:18:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"7046:27:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":110766,"nodeType":"Block","src":"7149:65:234","statements":[{"expression":{"arguments":[{"hexValue":"50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065","id":110763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7170:32:234","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""},"value":"ProxyAdmin: unknown proxy type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d595a635c8f2d148646b25cd19d12c4c97462aeb17388cbeb2bf405cffe65f2","typeString":"literal_string \"ProxyAdmin: unknown proxy type\""}],"id":110762,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7163:6:234","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":110764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7163:40:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110765,"nodeType":"ExpressionStatement","src":"7163:40:234"}]},"id":110767,"nodeType":"IfStatement","src":"7042:172:234","trueBody":{"id":110761,"nodeType":"Block","src":"7075:68:234","statements":[{"expression":{"arguments":[{"id":110758,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110715,"src":"7122:9:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":110755,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"7089:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":49414,"src":"7089:32:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":110759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7089:43:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110760,"nodeType":"ExpressionStatement","src":"7089:43:234"}]}},"id":110768,"nodeType":"IfStatement","src":"6931:283:234","trueBody":{"id":110750,"nodeType":"Block","src":"6966:70:234","statements":[{"expression":{"arguments":[{"id":110747,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110715,"src":"7015:9:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":110744,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110713,"src":"6998:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110743,"name":"L1ChugSplashProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102516,"src":"6980:17:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1ChugSplashProxy_$102516_$","typeString":"type(contract L1ChugSplashProxy)"}},"id":110745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6980:25:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1ChugSplashProxy_$102516","typeString":"contract L1ChugSplashProxy"}},"id":110746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setOwner","nodeType":"MemberAccess","referencedDeclaration":102391,"src":"6980:34:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":110748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6980:45:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110749,"nodeType":"ExpressionStatement","src":"6980:45:234"}]}},"id":110769,"nodeType":"IfStatement","src":"6832:382:234","trueBody":{"id":110738,"nodeType":"Block","src":"6864:61:234","statements":[{"expression":{"arguments":[{"id":110735,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110715,"src":"6904:9:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":110732,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110713,"src":"6884:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110731,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110434,"src":"6878:5:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$110434_$","typeString":"type(contract Proxy)"}},"id":110733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6878:13:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$110434","typeString":"contract Proxy"}},"id":110734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":110312,"src":"6878:25:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":110736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6878:36:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110737,"nodeType":"ExpressionStatement","src":"6878:36:234"}]}}]},"documentation":{"id":110711,"nodeType":"StructuredDocumentation","src":"6513:171:234","text":"@notice Updates the admin of the given proxy address.\n @param _proxy Address of the proxy to update.\n @param _newAdmin Address of the new proxy admin."},"functionSelector":"7eff275e","implemented":true,"kind":"function","modifiers":[{"id":110718,"kind":"modifierInvocation","modifierName":{"id":110717,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"6767:9:234"},"nodeType":"ModifierInvocation","src":"6767:9:234"}],"name":"changeProxyAdmin","nameLocation":"6698:16:234","parameters":{"id":110716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110713,"mutability":"mutable","name":"_proxy","nameLocation":"6731:6:234","nodeType":"VariableDeclaration","scope":110771,"src":"6715:22:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":110712,"name":"address","nodeType":"ElementaryTypeName","src":"6715:15:234","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":110715,"mutability":"mutable","name":"_newAdmin","nameLocation":"6747:9:234","nodeType":"VariableDeclaration","scope":110771,"src":"6739:17:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110714,"name":"address","nodeType":"ElementaryTypeName","src":"6739:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6714:43:234"},"returnParameters":{"id":110719,"nodeType":"ParameterList","parameters":[],"src":"6777:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":110850,"nodeType":"FunctionDefinition","src":"7423:816:234","nodes":[],"body":{"id":110849,"nodeType":"Block","src":"7506:733:234","nodes":[],"statements":[{"assignments":[110783],"declarations":[{"constant":false,"id":110783,"mutability":"mutable","name":"ptype","nameLocation":"7526:5:234","nodeType":"VariableDeclaration","scope":110849,"src":"7516:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110782,"nodeType":"UserDefinedTypeName","pathNode":{"id":110781,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"7516:9:234"},"referencedDeclaration":110477,"src":"7516:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"id":110787,"initialValue":{"baseExpression":{"id":110784,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"7534:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110786,"indexExpression":{"id":110785,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110774,"src":"7544:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7534:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"VariableDeclarationStatement","src":"7516:35:234"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110788,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110783,"src":"7565:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110789,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"7574:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC1967","nodeType":"MemberAccess","referencedDeclaration":110474,"src":"7574:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"7565:26:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110800,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110783,"src":"7668:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110801,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"7677:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CHUGSPLASH","nodeType":"MemberAccess","referencedDeclaration":110475,"src":"7677:20:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"7668:29:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110823,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110783,"src":"7884:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110824,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"7893:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"RESOLVED","nodeType":"MemberAccess","referencedDeclaration":110476,"src":"7893:18:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"7884:27:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":110845,"nodeType":"Block","src":"8053:180:234","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":110842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8216:5:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":110841,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"8209:6:234","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":110843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8209:13:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110844,"nodeType":"ExpressionStatement","src":"8209:13:234"}]},"id":110846,"nodeType":"IfStatement","src":"7880:353:234","trueBody":{"id":110840,"nodeType":"Block","src":"7913:134:234","statements":[{"assignments":[110828],"declarations":[{"constant":false,"id":110828,"mutability":"mutable","name":"name","nameLocation":"7941:4:234","nodeType":"VariableDeclaration","scope":110840,"src":"7927:18:234","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":110827,"name":"string","nodeType":"ElementaryTypeName","src":"7927:6:234","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":110832,"initialValue":{"baseExpression":{"id":110829,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110488,"src":"7948:18:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":110831,"indexExpression":{"id":110830,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110774,"src":"7967:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7948:26:234","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7927:47:234"},{"expression":{"arguments":[{"id":110836,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110828,"src":"8014:4:234","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":110837,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110776,"src":"8020:15:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":110833,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110492,"src":"7988:14:234","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$102008","typeString":"contract AddressManager"}},"id":110835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAddress","nodeType":"MemberAccess","referencedDeclaration":101976,"src":"7988:25:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) external"}},"id":110838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7988:48:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110839,"nodeType":"ExpressionStatement","src":"7988:48:234"}]}},"id":110847,"nodeType":"IfStatement","src":"7664:569:234","trueBody":{"id":110822,"nodeType":"Block","src":"7699:175:234","statements":[{"expression":{"arguments":[{"expression":{"id":110808,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"7767:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$103096_$","typeString":"type(library Constants)"}},"id":110809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PROXY_IMPLEMENTATION_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":103062,"src":"7767:38:234","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"id":110816,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110776,"src":"7831:15:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":110815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7823:7:234","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":110814,"name":"uint160","nodeType":"ElementaryTypeName","src":"7823:7:234","typeDescriptions":{}}},"id":110817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:24:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":110813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7815:7:234","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":110812,"name":"uint256","nodeType":"ElementaryTypeName","src":"7815:7:234","typeDescriptions":{}}},"id":110818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7815:33:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":110811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7807:7:234","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":110810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7807:7:234","typeDescriptions":{}}},"id":110819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7807:42:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":110805,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110774,"src":"7731:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110804,"name":"L1ChugSplashProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102516,"src":"7713:17:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1ChugSplashProxy_$102516_$","typeString":"type(contract L1ChugSplashProxy)"}},"id":110806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7713:25:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1ChugSplashProxy_$102516","typeString":"contract L1ChugSplashProxy"}},"id":110807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":102378,"src":"7713:36:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) external"}},"id":110820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7713:150:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110821,"nodeType":"ExpressionStatement","src":"7713:150:234"}]}},"id":110848,"nodeType":"IfStatement","src":"7561:672:234","trueBody":{"id":110799,"nodeType":"Block","src":"7593:65:234","statements":[{"expression":{"arguments":[{"id":110796,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110776,"src":"7631:15:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":110793,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110774,"src":"7613:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110792,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110434,"src":"7607:5:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$110434_$","typeString":"type(contract Proxy)"}},"id":110794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:13:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$110434","typeString":"contract Proxy"}},"id":110795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":110266,"src":"7607:23:234","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":110797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:40:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110798,"nodeType":"ExpressionStatement","src":"7607:40:234"}]}}]},"documentation":{"id":110772,"nodeType":"StructuredDocumentation","src":"7226:192:234","text":"@notice Changes a proxy's implementation contract.\n @param _proxy Address of the proxy to upgrade.\n @param _implementation Address of the new implementation address."},"functionSelector":"99a88ec4","implemented":true,"kind":"function","modifiers":[{"id":110779,"kind":"modifierInvocation","modifierName":{"id":110778,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"7496:9:234"},"nodeType":"ModifierInvocation","src":"7496:9:234"}],"name":"upgrade","nameLocation":"7432:7:234","parameters":{"id":110777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110774,"mutability":"mutable","name":"_proxy","nameLocation":"7456:6:234","nodeType":"VariableDeclaration","scope":110850,"src":"7440:22:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":110773,"name":"address","nodeType":"ElementaryTypeName","src":"7440:15:234","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":110776,"mutability":"mutable","name":"_implementation","nameLocation":"7472:15:234","nodeType":"VariableDeclaration","scope":110850,"src":"7464:23:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110775,"name":"address","nodeType":"ElementaryTypeName","src":"7464:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7439:49:234"},"returnParameters":{"id":110780,"nodeType":"ParameterList","parameters":[],"src":"7506:0:234"},"scope":110909,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":110908,"nodeType":"FunctionDefinition","src":"8644:631:234","nodes":[],"body":{"id":110907,"nodeType":"Block","src":"8822:453:234","nodes":[],"statements":[{"assignments":[110864],"declarations":[{"constant":false,"id":110864,"mutability":"mutable","name":"ptype","nameLocation":"8842:5:234","nodeType":"VariableDeclaration","scope":110907,"src":"8832:15:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"typeName":{"id":110863,"nodeType":"UserDefinedTypeName","pathNode":{"id":110862,"name":"ProxyType","nodeType":"IdentifierPath","referencedDeclaration":110477,"src":"8832:9:234"},"referencedDeclaration":110477,"src":"8832:9:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"visibility":"internal"}],"id":110868,"initialValue":{"baseExpression":{"id":110865,"name":"proxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110483,"src":"8850:9:234","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_ProxyType_$110477_$","typeString":"mapping(address => enum ProxyAdmin.ProxyType)"}},"id":110867,"indexExpression":{"id":110866,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110853,"src":"8860:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8850:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"VariableDeclarationStatement","src":"8832:35:234"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"},"id":110872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":110869,"name":"ptype","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110864,"src":"8881:5:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":110870,"name":"ProxyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110477,"src":"8890:9:234","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProxyType_$110477_$","typeString":"type(enum ProxyAdmin.ProxyType)"}},"id":110871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC1967","nodeType":"MemberAccess","referencedDeclaration":110474,"src":"8890:17:234","typeDescriptions":{"typeIdentifier":"t_enum$_ProxyType_$110477","typeString":"enum ProxyAdmin.ProxyType"}},"src":"8881:26:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":110905,"nodeType":"Block","src":"9014:255:234","statements":[{"expression":{"arguments":[{"id":110886,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110853,"src":"9084:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":110887,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110855,"src":"9092:15:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":110885,"name":"upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110850,"src":"9076:7:234","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_address_$returns$__$","typeString":"function (address payable,address)"}},"id":110888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9076:32:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110889,"nodeType":"ExpressionStatement","src":"9076:32:234"},{"assignments":[110891,null],"declarations":[{"constant":false,"id":110891,"mutability":"mutable","name":"success","nameLocation":"9128:7:234","nodeType":"VariableDeclaration","scope":110905,"src":"9123:12:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110890,"name":"bool","nodeType":"ElementaryTypeName","src":"9123:4:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":110899,"initialValue":{"arguments":[{"id":110897,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110857,"src":"9172:5:234","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":110892,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110853,"src":"9140:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":110893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"9140:11:234","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":110896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":110894,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9160:3:234","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":110895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"9160:9:234","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"9140:31:234","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":110898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9140:38:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9122:56:234"},{"expression":{"arguments":[{"id":110901,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110891,"src":"9200:7:234","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722075706772616465206661696c6564","id":110902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9209:48:234","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dbbe4927f0b34687229d178ecf6fef1e21d5f949373ef3cb14376a90927e2f4","typeString":"literal_string \"ProxyAdmin: call to proxy after upgrade failed\""},"value":"ProxyAdmin: call to proxy after upgrade failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9dbbe4927f0b34687229d178ecf6fef1e21d5f949373ef3cb14376a90927e2f4","typeString":"literal_string \"ProxyAdmin: call to proxy after upgrade failed\""}],"id":110900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9192:7:234","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":110903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9192:66:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110904,"nodeType":"ExpressionStatement","src":"9192:66:234"}]},"id":110906,"nodeType":"IfStatement","src":"8877:392:234","trueBody":{"id":110884,"nodeType":"Block","src":"8909:99:234","statements":[{"expression":{"arguments":[{"id":110880,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110855,"src":"8974:15:234","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":110881,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110857,"src":"8991:5:234","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":110874,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110853,"src":"8929:6:234","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":110873,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110434,"src":"8923:5:234","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$110434_$","typeString":"type(contract Proxy)"}},"id":110875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8923:13:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$110434","typeString":"contract Proxy"}},"id":110876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":110299,"src":"8923:30:234","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) payable external returns (bytes memory)"}},"id":110879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":110877,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8962:3:234","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":110878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"8962:9:234","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"8923:50:234","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$value","typeString":"function (address,bytes memory) payable external returns (bytes memory)"}},"id":110882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8923:74:234","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":110883,"nodeType":"ExpressionStatement","src":"8923:74:234"}]}}]},"documentation":{"id":110851,"nodeType":"StructuredDocumentation","src":"8245:394:234","text":"@notice Changes a proxy's implementation contract and delegatecalls the new implementation\n with some given data. Useful for atomic upgrade-and-initialize calls.\n @param _proxy Address of the proxy to upgrade.\n @param _implementation Address of the new implementation address.\n @param _data Data to trigger the new implementation with."},"functionSelector":"9623609d","implemented":true,"kind":"function","modifiers":[{"id":110860,"kind":"modifierInvocation","modifierName":{"id":110859,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":49354,"src":"8808:9:234"},"nodeType":"ModifierInvocation","src":"8808:9:234"}],"name":"upgradeAndCall","nameLocation":"8653:14:234","parameters":{"id":110858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110853,"mutability":"mutable","name":"_proxy","nameLocation":"8693:6:234","nodeType":"VariableDeclaration","scope":110908,"src":"8677:22:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":110852,"name":"address","nodeType":"ElementaryTypeName","src":"8677:15:234","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":110855,"mutability":"mutable","name":"_implementation","nameLocation":"8717:15:234","nodeType":"VariableDeclaration","scope":110908,"src":"8709:23:234","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110854,"name":"address","nodeType":"ElementaryTypeName","src":"8709:7:234","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":110857,"mutability":"mutable","name":"_data","nameLocation":"8755:5:234","nodeType":"VariableDeclaration","scope":110908,"src":"8742:18:234","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":110856,"name":"bytes","nodeType":"ElementaryTypeName","src":"8742:5:234","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8667:99:234"},"returnParameters":{"id":110861,"nodeType":"ParameterList","parameters":[],"src":"8822:0:234"},"scope":110909,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":110472,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":49435,"src":"1264:7:234"},"id":110473,"nodeType":"InheritanceSpecifier","src":"1264:7:234"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":110471,"nodeType":"StructuredDocumentation","src":"928:313:234","text":"@title ProxyAdmin\n @notice This is an auxiliary contract meant to be assigned as the admin of an ERC1967 Proxy,\n based on the OpenZeppelin implementation. It has backwards compatibility logic to work\n with the various types of proxies that have been deployed by Optimism in the past."},"fullyImplemented":true,"linearizedBaseContracts":[110909,49435,53291],"name":"ProxyAdmin","nameLocation":"1250:10:234","scope":110910,"usedErrors":[]}],"license":"MIT"},"id":234} \ No newline at end of file diff --git a/packages/sdk/src/forge-artifacts/WETH9.json b/packages/sdk/src/forge-artifacts/WETH9.json new file mode 100644 index 000000000000..d89e081d4a7f --- /dev/null +++ b/packages/sdk/src/forge-artifacts/WETH9.json @@ -0,0 +1 @@ +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"guy","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"src","type":"address","internalType":"address"},{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"guy","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6107f9806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820d9a21886186e04516cbdaa611a54950fabc4d47164691bf70de28f6c54060de964736f6c63430005110032","sourceMap":"739:40:0:-;718:1809;739:40;;718:1809;739:40;;;-1:-1:-1;;;739:40:0;;;;;;-1:-1:-1;;739:40:0;;:::i;:::-;-1:-1:-1;785:31:0;;;;;;;;;;;;;-1:-1:-1;;;785:31:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;822:27:0;;;-1:-1:-1;;822:27:0;847:2;822:27;;;718:1809;5:2:-1;;;;30:1;27;20:12;5:2;718:1809:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;718:1809:0;;;-1:-1:-1;718:1809:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820d9a21886186e04516cbdaa611a54950fabc4d47164691bf70de28f6c54060de964736f6c63430005110032","sourceMap":"718:1809:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1289:9;:7;:9::i;:::-;718:1809;739:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;739:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;739:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1755:177:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1654:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1654:95:0;;;:::i;:::-;;;;;;;;;;;;;;;;2065:460;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2065:460:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2065:460:0;;;;;;;;;;;;;;;;;;:::i;1445:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1445:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1445:203:0;;:::i;822:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;822:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1108:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1108:65:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1108:65:0;;;;:::i;785:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;785:31:0;;;:::i;1938:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1938:121:0;;;;;;;;;:::i;1179:65::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1179:65:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1179:65:0;;;;;;;;;;;:::i;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;739:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1755:177::-;1837:10;1811:4;1827:21;;;:9;:21;;;;;;;;;:26;;;;;;;;;;;:32;;;1874:30;;;;;;;1811:4;;1827:26;;1837:10;;1874:30;;;;;;;;-1:-1:-1;1921:4:0;1755:177;;;;:::o;1654:95::-;1721:21;1654:95;:::o;2065:460::-;2183:14;;;2155:4;2183:14;;;:9;:14;;;;;;:21;-1:-1:-1;2183:21:0;2175:30;;;;;;2220:17;;;2227:10;2220:17;;;;:59;;-1:-1:-1;2241:14:0;;;;;;;:9;:14;;;;;;;;2256:10;2241:26;;;;;;;;2276:2;2241:38;;2220:59;2216:179;;;2303:14;;;;;;;:9;:14;;;;;;;;2318:10;2303:26;;;;;;;;:33;-1:-1:-1;2303:33:0;2295:42;;;;;;2351:14;;;;;;;:9;:14;;;;;;;;2366:10;2351:26;;;;;;;:33;;;;;;;2216:179;2405:14;;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2436:14;;;;;;;;;;:21;;;;;;2473:23;;;;;;;2436:14;;2473:23;;;;;;;;;;;-1:-1:-1;2514:4:0;2065:460;;;;;:::o;1445:203::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:0;1490:37;;;;;;1547:10;1537:21;;;;:9;:21;;;;;;:28;;;;;;;1575:24;;;;;;1562:3;;1575:24;;1537:21;1575:24;1562:3;1547:10;1575:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1614:27:0;;;;;;;;1625:10;;1614:27;;;;;;;;;;1445:203;:::o;822:27::-;;;;;;:::o;1108:65::-;;;;;;;;;;;;;:::o;785:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:121;1995:4;2018:34;2031:10;2043:3;2048;2018:12;:34::i;:::-;2011:41;1938:121;-1:-1:-1;;;1938:121:0:o;1179:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/vendor/WETH9.sol\":\"WETH9\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/vendor/WETH9.sol\":{\"keccak256\":\"0x5cf72b1d2b0f0a758d5540c663352aa757c80a975c2e2d9b22cc6bc9f1ada1a1\",\"urls\":[\"bzz-raw://aba380794ab2878afe942d0c093cb41820afa854182668af91bffa3f26492244\",\"dweb:/ipfs/QmTW9EWupsNX3DgoJc13uu2V3P4UPRErvaVCPmLyCbDnM1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"guy","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"compilationTarget":{"src/vendor/WETH9.sol":"WETH9"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/vendor/WETH9.sol":{"keccak256":"0x5cf72b1d2b0f0a758d5540c663352aa757c80a975c2e2d9b22cc6bc9f1ada1a1","urls":["bzz-raw://aba380794ab2878afe942d0c093cb41820afa854182668af91bffa3f26492244","dweb:/ipfs/QmTW9EWupsNX3DgoJc13uu2V3P4UPRErvaVCPmLyCbDnM1"],"license":null}},"version":1},"storageLayout":{"storage":[{"astId":4,"contract":"src/vendor/WETH9.sol:WETH9","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":7,"contract":"src/vendor/WETH9.sol:WETH9","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":10,"contract":"src/vendor/WETH9.sol:WETH9","label":"decimals","offset":0,"slot":"2","type":"t_uint8"},{"astId":42,"contract":"src/vendor/WETH9.sol:WETH9","label":"balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":48,"contract":"src/vendor/WETH9.sol:WETH9","label":"allowance","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{},"devdoc":{},"ast":{"absolutePath":"src/vendor/WETH9.sol","id":246,"exportedSymbols":{"WETH9":[245]},"nodeType":"SourceUnit","src":"686:36998:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"686:30:0","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.6"]},{"id":245,"nodeType":"ContractDefinition","src":"718:1809:0","nodes":[{"id":4,"nodeType":"VariableDeclaration","src":"739:40:0","nodes":[],"constant":false,"name":"name","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"739:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"57726170706564204574686572","id":3,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"764:15:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3","typeString":"literal_string \"Wrapped Ether\""},"value":"Wrapped Ether"},"visibility":"public"},{"id":7,"nodeType":"VariableDeclaration","src":"785:31:0","nodes":[],"constant":false,"name":"symbol","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5,"name":"string","nodeType":"ElementaryTypeName","src":"785:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"57455448","id":6,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"810:6:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8","typeString":"literal_string \"WETH\""},"value":"WETH"},"visibility":"public"},{"id":10,"nodeType":"VariableDeclaration","src":"822:27:0","nodes":[],"constant":false,"name":"decimals","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8,"name":"uint8","nodeType":"ElementaryTypeName","src":"822:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":9,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"id":18,"nodeType":"EventDefinition","src":"856:68:0","nodes":[],"anonymous":false,"documentation":null,"name":"Approval","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":18,"src":"872:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14,"indexed":true,"name":"guy","nodeType":"VariableDeclaration","scope":18,"src":"893:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":16,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":18,"src":"914:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15,"name":"uint","nodeType":"ElementaryTypeName","src":"914:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"871:52:0"}},{"id":26,"nodeType":"EventDefinition","src":"929:68:0","nodes":[],"anonymous":false,"documentation":null,"name":"Transfer","parameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":26,"src":"945:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"945:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"name":"dst","nodeType":"VariableDeclaration","scope":26,"src":"966:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":24,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":26,"src":"987:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23,"name":"uint","nodeType":"ElementaryTypeName","src":"987:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"944:52:0"}},{"id":32,"nodeType":"EventDefinition","src":"1002:46:0","nodes":[],"anonymous":false,"documentation":null,"name":"Deposit","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"indexed":true,"name":"dst","nodeType":"VariableDeclaration","scope":32,"src":"1017:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":30,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":32,"src":"1038:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29,"name":"uint","nodeType":"ElementaryTypeName","src":"1038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1016:31:0"}},{"id":38,"nodeType":"EventDefinition","src":"1053:49:0","nodes":[],"anonymous":false,"documentation":null,"name":"Withdrawal","parameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":38,"src":"1071:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"1071:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":36,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":38,"src":"1092:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35,"name":"uint","nodeType":"ElementaryTypeName","src":"1092:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1070:31:0"}},{"id":42,"nodeType":"VariableDeclaration","src":"1108:65:0","nodes":[],"constant":false,"name":"balanceOf","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":41,"keyType":{"id":39,"name":"address","nodeType":"ElementaryTypeName","src":"1117:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1108:25:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":40,"name":"uint","nodeType":"ElementaryTypeName","src":"1128:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"id":48,"nodeType":"VariableDeclaration","src":"1179:65:0","nodes":[],"constant":false,"name":"allowance","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":47,"keyType":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1179:46:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":46,"keyType":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:25:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":45,"name":"uint","nodeType":"ElementaryTypeName","src":"1219:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"id":55,"nodeType":"FunctionDefinition","src":"1251:54:0","nodes":[],"body":{"id":54,"nodeType":"Block","src":"1279:26:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":51,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1289:9:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53,"nodeType":"ExpressionStatement","src":"1289:9:0"}]},"documentation":null,"implemented":true,"kind":"fallback","modifiers":[],"name":"","parameters":{"id":49,"nodeType":"ParameterList","parameters":[],"src":"1259:2:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[],"src":"1279:0:0"},"scope":245,"stateMutability":"payable","superFunction":null,"visibility":"external"},{"id":74,"nodeType":"FunctionDefinition","src":"1310:130:0","nodes":[],"body":{"id":73,"nodeType":"Block","src":"1344:96:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":64,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":58,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1354:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":61,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":59,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1364:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1364:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1354:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":62,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1379:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1379:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1354:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65,"nodeType":"ExpressionStatement","src":"1354:34:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":67,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1411:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1411:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":69,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1423:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1423:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":66,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1403:7:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":71,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72,"nodeType":"EmitStatement","src":"1398:35:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"deposit","parameters":{"id":56,"nodeType":"ParameterList","parameters":[],"src":"1326:2:0"},"returnParameters":{"id":57,"nodeType":"ParameterList","parameters":[],"src":"1344:0:0"},"scope":245,"stateMutability":"payable","superFunction":null,"visibility":"public"},{"id":110,"nodeType":"FunctionDefinition","src":"1445:203:0","nodes":[],"body":{"id":109,"nodeType":"Block","src":"1480:168:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":80,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1498:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":83,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":81,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1508:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1508:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1498:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":84,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1523:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1498:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"1490:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1490:37:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87,"nodeType":"ExpressionStatement","src":"1490:37:0"},{"expression":{"argumentTypes":null,"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":88,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1537:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":91,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":89,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1547:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1547:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1537:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":92,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1562:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1537:28:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":94,"nodeType":"ExpressionStatement","src":"1537:28:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":100,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1595:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":95,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1575:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1575:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":99,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1575:19:0","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102,"nodeType":"ExpressionStatement","src":"1575:24:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":104,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1625:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1625:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":106,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1637:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":103,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"1614:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1614:27:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":108,"nodeType":"EmitStatement","src":"1609:32:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"name":"wad","nodeType":"VariableDeclaration","scope":110,"src":"1463:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint","nodeType":"ElementaryTypeName","src":"1463:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1462:10:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1480:0:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":121,"nodeType":"FunctionDefinition","src":"1654:95:0","nodes":[],"body":{"id":120,"nodeType":"Block","src":"1704:45:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":116,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"1729:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_WETH9_$245","typeString":"contract WETH9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_WETH9_$245","typeString":"contract WETH9"}],"id":115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1721:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1721:13:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1721:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":114,"id":119,"nodeType":"Return","src":"1714:28:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","parameters":{"id":111,"nodeType":"ParameterList","parameters":[],"src":"1674:2:0"},"returnParameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113,"name":"","nodeType":"VariableDeclaration","scope":121,"src":"1698:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112,"name":"uint","nodeType":"ElementaryTypeName","src":"1698:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1697:6:0"},"scope":245,"stateMutability":"view","superFunction":null,"visibility":"public"},{"id":149,"nodeType":"FunctionDefinition","src":"1755:177:0","nodes":[],"body":{"id":148,"nodeType":"Block","src":"1817:115:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":130,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"1827:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":134,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":131,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1837:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1837:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":135,"indexExpression":{"argumentTypes":null,"id":133,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1849:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1827:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":136,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"1856:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1827:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":138,"nodeType":"ExpressionStatement","src":"1827:32:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":140,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1883:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1883:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":142,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1895:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":143,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"1900:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":139,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1874:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1874:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":145,"nodeType":"EmitStatement","src":"1869:35:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1921:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":129,"id":147,"nodeType":"Return","src":"1914:11:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"approve","parameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"name":"guy","nodeType":"VariableDeclaration","scope":149,"src":"1772:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":125,"name":"wad","nodeType":"VariableDeclaration","scope":149,"src":"1785:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":124,"name":"uint","nodeType":"ElementaryTypeName","src":"1785:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1771:23:0"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"name":"","nodeType":"VariableDeclaration","scope":149,"src":"1811:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":127,"name":"bool","nodeType":"ElementaryTypeName","src":"1811:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1810:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":166,"nodeType":"FunctionDefinition","src":"1938:121:0","nodes":[],"body":{"id":165,"nodeType":"Block","src":"2001:58:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":159,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2031:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2031:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":161,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"2043:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":162,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"2048:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":158,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2018:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2018:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":157,"id":164,"nodeType":"Return","src":"2011:41:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","parameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":151,"name":"dst","nodeType":"VariableDeclaration","scope":166,"src":"1956:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":153,"name":"wad","nodeType":"VariableDeclaration","scope":166,"src":"1969:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint","nodeType":"ElementaryTypeName","src":"1969:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1955:23:0"},"returnParameters":{"id":157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":156,"name":"","nodeType":"VariableDeclaration","scope":166,"src":"1995:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":155,"name":"bool","nodeType":"ElementaryTypeName","src":"1995:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1994:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":244,"nodeType":"FunctionDefinition","src":"2065:460:0","nodes":[],"body":{"id":243,"nodeType":"Block","src":"2165:360:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":178,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2183:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":180,"indexExpression":{"argumentTypes":null,"id":179,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2193:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2183:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":181,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2201:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2183:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":177,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"2175:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2175:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"2175:30:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":185,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2220:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":186,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2227:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2227:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2220:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":189,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2241:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":191,"indexExpression":{"argumentTypes":null,"id":190,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2251:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2241:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":194,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2256:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2256:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2241:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2276:2:0","subExpression":{"argumentTypes":null,"hexValue":"31","id":196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2277:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2271:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2271:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2241:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2220:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":222,"nodeType":"IfStatement","src":"2216:179:0","trueBody":{"id":221,"nodeType":"Block","src":"2281:114:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":202,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2303:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":204,"indexExpression":{"argumentTypes":null,"id":203,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2313:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2303:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":207,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":205,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2318:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2318:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2303:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":208,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2333:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2303:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":201,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"2295:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2295:42:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"2295:42:0"},{"expression":{"argumentTypes":null,"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":212,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2351:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":216,"indexExpression":{"argumentTypes":null,"id":213,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2361:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2351:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":217,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":214,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2366:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2366:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2351:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":218,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2381:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2351:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220,"nodeType":"ExpressionStatement","src":"2351:33:0"}]}},{"expression":{"argumentTypes":null,"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":223,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2405:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":225,"indexExpression":{"argumentTypes":null,"id":224,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2415:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2405:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":226,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2423:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2405:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":228,"nodeType":"ExpressionStatement","src":"2405:21:0"},{"expression":{"argumentTypes":null,"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":229,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2436:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":231,"indexExpression":{"argumentTypes":null,"id":230,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"2446:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2436:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":232,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2454:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2436:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":234,"nodeType":"ExpressionStatement","src":"2436:21:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":236,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2482:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":237,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"2487:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":238,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2492:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":235,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"2473:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2473:23:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"EmitStatement","src":"2468:28:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2514:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":176,"id":242,"nodeType":"Return","src":"2507:11:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"name":"src","nodeType":"VariableDeclaration","scope":244,"src":"2087:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":167,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":170,"name":"dst","nodeType":"VariableDeclaration","scope":244,"src":"2100:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":169,"name":"address","nodeType":"ElementaryTypeName","src":"2100:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":172,"name":"wad","nodeType":"VariableDeclaration","scope":244,"src":"2113:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint","nodeType":"ElementaryTypeName","src":"2113:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2086:36:0"},"returnParameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175,"name":"","nodeType":"VariableDeclaration","scope":244,"src":"2155:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":174,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2154:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[245],"name":"WETH9","scope":246}]},"id":0} \ No newline at end of file diff --git a/packages/sdk/src/utils/contracts.ts b/packages/sdk/src/utils/contracts.ts index a1c786a4631b..c9a4184b0367 100644 --- a/packages/sdk/src/utils/contracts.ts +++ b/packages/sdk/src/utils/contracts.ts @@ -1,23 +1,23 @@ import { getContractInterface, predeploys } from '@eth-optimism/contracts' import { ethers, Contract } from 'ethers' -import l1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json' -import l2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json' -import optimismMintableERC20 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json' -import optimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json' -import l1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json' -import l2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json' -import optimismMintableERC20Factory from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20Factory.sol/OptimismMintableERC20Factory.json' -import proxyAdmin from '@eth-optimism/contracts-bedrock/forge-artifacts/ProxyAdmin.sol/ProxyAdmin.json' -import l2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json' -import l1ERC721Bridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1ERC721Bridge.sol/L1ERC721Bridge.json' -import l2ERC721Bridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ERC721Bridge.sol/L2ERC721Bridge.json' -import l1Block from '@eth-optimism/contracts-bedrock/forge-artifacts/L1Block.sol/L1Block.json' -import l2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json' -import gasPriceOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/GasPriceOracle.sol/GasPriceOracle.json' -import disputeGameFactory from '@eth-optimism/contracts-bedrock/forge-artifacts/DisputeGameFactory.sol/DisputeGameFactory.json' -import optimismPortal2 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal2.sol/OptimismPortal2.json' -import faultDisputeGame from '@eth-optimism/contracts-bedrock/forge-artifacts/FaultDisputeGame.sol/FaultDisputeGame.json' +import l1StandardBridge from '../forge-artifacts/L1StandardBridge.json' +import l2StandardBridge from '../forge-artifacts/L2StandardBridge.json' +import optimismMintableERC20 from '../forge-artifacts/OptimismMintableERC20.json' +import optimismPortal from '../forge-artifacts/OptimismPortal.json' +import l1CrossDomainMessenger from '../forge-artifacts/L1CrossDomainMessenger.json' +import l2CrossDomainMessenger from '../forge-artifacts/L2CrossDomainMessenger.json' +import optimismMintableERC20Factory from '../forge-artifacts/OptimismMintableERC20Factory.json' +import proxyAdmin from '../forge-artifacts/ProxyAdmin.json' +import l2OutputOracle from '../forge-artifacts/L2OutputOracle.json' +import l1ERC721Bridge from '../forge-artifacts/L1ERC721Bridge.json' +import l2ERC721Bridge from '../forge-artifacts/L2ERC721Bridge.json' +import l1Block from '../forge-artifacts/L1Block.json' +import l2ToL1MessagePasser from '../forge-artifacts/L2ToL1MessagePasser.json' +import gasPriceOracle from '../forge-artifacts/GasPriceOracle.json' +import disputeGameFactory from '../forge-artifacts/DisputeGameFactory.json' +import optimismPortal2 from '../forge-artifacts/OptimismPortal2.json' +import faultDisputeGame from '../forge-artifacts/FaultDisputeGame.json' import { toAddress } from './coercion' import { DeepPartial } from './type-utils' import { CrossChainMessenger } from '../cross-chain-messenger' diff --git a/packages/sdk/tasks/deposit-erc20.ts b/packages/sdk/tasks/deposit-erc20.ts index 9b62aea1eac4..e98f2b2398a5 100644 --- a/packages/sdk/tasks/deposit-erc20.ts +++ b/packages/sdk/tasks/deposit-erc20.ts @@ -7,17 +7,17 @@ import '@nomiclabs/hardhat-ethers' import 'hardhat-deploy' import { Event, Contract, Wallet, providers, utils, ethers } from 'ethers' import { predeploys, sleep } from '@eth-optimism/core-utils' -import Artifact__WETH9 from '@eth-optimism/contracts-bedrock/forge-artifacts/WETH9.sol/WETH9.json' -import Artifact__OptimismMintableERC20TokenFactory from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20Factory.sol/OptimismMintableERC20Factory.json' -import Artifact__OptimismMintableERC20Token from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json' -import Artifact__L2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json' -import Artifact__L2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json' -import Artifact__L2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json' -import Artifact__OptimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json' -import Artifact__L1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json' -import Artifact__L1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json' -import Artifact__L2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json' +import Artifact__WETH9 from '../src/forge-artifacts/WETH9.json' +import Artifact__OptimismMintableERC20TokenFactory from '../src/forge-artifacts/OptimismMintableERC20Factory.json' +import Artifact__OptimismMintableERC20Token from '../src/forge-artifacts/OptimismMintableERC20.json' +import Artifact__L2ToL1MessagePasser from '../src/forge-artifacts/L2ToL1MessagePasser.json' +import Artifact__L2CrossDomainMessenger from '../src/forge-artifacts/L2CrossDomainMessenger.json' +import Artifact__L2StandardBridge from '../src/forge-artifacts/L2StandardBridge.json' +import Artifact__OptimismPortal from '../src/forge-artifacts/OptimismPortal.json' +import Artifact__L1CrossDomainMessenger from '../src/forge-artifacts/L1CrossDomainMessenger.json' +import Artifact__L1StandardBridge from '../src/forge-artifacts/L1StandardBridge.json' +import Artifact__L2OutputOracle from '../src/forge-artifacts/L2OutputOracle.json' import { CrossChainMessenger, MessageStatus, diff --git a/packages/sdk/tasks/deposit-eth.ts b/packages/sdk/tasks/deposit-eth.ts index a6766a8646c3..8e145a246a02 100644 --- a/packages/sdk/tasks/deposit-eth.ts +++ b/packages/sdk/tasks/deposit-eth.ts @@ -6,14 +6,14 @@ import 'hardhat-deploy' import { Deployment } from 'hardhat-deploy/types' import { predeploys } from '@eth-optimism/core-utils' import { providers, utils, ethers } from 'ethers' -import Artifact__L2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json' -import Artifact__L2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json' -import Artifact__L2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json' -import Artifact__OptimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json' -import Artifact__L1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json' -import Artifact__L1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json' -import Artifact__L2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json' +import Artifact__L2ToL1MessagePasser from '../src/forge-artifacts/L2ToL1MessagePasser.json' +import Artifact__L2CrossDomainMessenger from '../src/forge-artifacts/L2CrossDomainMessenger.json' +import Artifact__L2StandardBridge from '../src/forge-artifacts/L2StandardBridge.json' +import Artifact__OptimismPortal from '../src/forge-artifacts/OptimismPortal.json' +import Artifact__L1CrossDomainMessenger from '../src/forge-artifacts/L1CrossDomainMessenger.json' +import Artifact__L1StandardBridge from '../src/forge-artifacts/L1StandardBridge.json' +import Artifact__L2OutputOracle from '../src/forge-artifacts/L2OutputOracle.json' import { CrossChainMessenger, MessageStatus, diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json index 28d2dacc7f69..c59f2e54c42b 100644 --- a/packages/sdk/tsconfig.json +++ b/packages/sdk/tsconfig.json @@ -6,6 +6,7 @@ "outDir": "./dist" }, "include": [ - "src/**/*" + "src/**/*", + "src/forge-artifacts/*.json" ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 97952276663d..97988d1c3f9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -440,9 +440,6 @@ importers: '@eth-optimism/contracts': specifier: 0.6.0 version: 0.6.0(bufferutil@4.0.8)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3))(utf-8-validate@6.0.3) - '@eth-optimism/contracts-bedrock': - specifier: workspace:* - version: link:../contracts-bedrock '@eth-optimism/core-utils': specifier: workspace:* version: link:../core-utils