{"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}