diff --git a/ethexe/contracts/src/IRouter.sol b/ethexe/contracts/src/IRouter.sol index 97ea4a5a476..1b556770389 100644 --- a/ethexe/contracts/src/IRouter.sol +++ b/ethexe/contracts/src/IRouter.sol @@ -5,7 +5,6 @@ pragma solidity ^0.8.26; interface IRouter { /* Storage related structures */ - // TODO (breathx): should we store here something about commitment and timestamp? /// @custom:storage-location erc7201:router.storage.Router struct Storage { bytes32 genesisBlockHash; @@ -13,6 +12,7 @@ interface IRouter { address mirrorProxy; address wrappedVara; bytes32 lastBlockCommitmentHash; + uint48 lastBlockCommitmentTimestamp; uint256 signingThresholdPercentage; uint64 baseWeight; uint128 valuePerWeight; @@ -167,6 +167,8 @@ interface IRouter { function lastBlockCommitmentHash() external view returns (bytes32); + function lastBlockCommitmentTimestamp() external view returns (uint48); + function wrappedVara() external view returns (address); function mirrorProxy() external view returns (address); diff --git a/ethexe/contracts/src/Router.sol b/ethexe/contracts/src/Router.sol index a6d9359d34c..41d0ecc9a81 100644 --- a/ethexe/contracts/src/Router.sol +++ b/ethexe/contracts/src/Router.sol @@ -89,6 +89,11 @@ contract Router is IRouter, OwnableUpgradeable, ReentrancyGuardTransient { return router.lastBlockCommitmentHash; } + function lastBlockCommitmentTimestamp() public view returns (uint48) { + Storage storage router = _getStorage(); + return router.lastBlockCommitmentTimestamp; + } + function wrappedVara() public view returns (address) { Storage storage router = _getStorage(); return router.wrappedVara; @@ -355,6 +360,7 @@ contract Router is IRouter, OwnableUpgradeable, ReentrancyGuardTransient { * @dev SECURITY: this settlement should be performed before any other calls to avoid reentrancy. */ router.lastBlockCommitmentHash = blockCommitment.blockHash; + router.lastBlockCommitmentTimestamp = blockCommitment.blockTimestamp; bytes memory transitionsHashes; diff --git a/ethexe/ethereum/Mirror.json b/ethexe/ethereum/Mirror.json index 48dfad1dff9..efd3fd07f4e 100644 --- a/ethexe/ethereum/Mirror.json +++ b/ethexe/ethereum/Mirror.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDecoder","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initMessage","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"executableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageSent","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"replySent","inputs":[{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyTo","type":"bytes32","internalType":"bytes32"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInheritor","inputs":[{"name":"_inheritor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateState","inputs":[{"name":"newStateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"valueClaimed","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608080604052346015576112dc908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c806312b22256146109f357806314503e511461097857806329336f391461087c57806336a52a18146108545780635b1b84f7146106a357806360302d241461068a578063701da98e1461066d578063704ed542146106055780638ea59e1d146105a057806391d5a64c146105385780639cb330051461050f578063affed0e0146104f1578063c2df60091461048e578063c78bde771461040e578063d562422214610298578063de1dd2e0146101045763f887ea40146100d5575f80fd5b3461010157806003193601126101015760206100ef610fe6565b6040516001600160a01b039091168152f35b80fd5b50346101015760803660031901126101015761011e610a47565b60243567ffffffffffffffff81116102945761013e903690600401610a9f565b90610147610a73565b92610150610a89565b9361016c6001600160a01b03610164610fe6565b163314610acd565b6002549081610238577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101c761023296610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916838201908152601481019290925261020581603484015b03601f198101835282610b74565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610c1d565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b5060403660031901126101015760043567ffffffffffffffff811161040a576102c5903690600401610a9f565b602435906001600160801b0382168203610406576001546102ef906001600160a01b031615610b30565b600460206001600160a01b03610303610fe6565b16604051928380926337792e1d60e11b82525afa9081156103fb57610358847f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361035d93602099916103ce575b50610bc9565b61116c565b60025461036981610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916878201908152601481019290925261039d81603484016101f7565b519020936103c36001600160a01b036103b461128a565b16946040519384938885610c1d565b0390a2604051908152f35b6103ee9150893d8b116103f4575b6103e68183610b74565b810190610baa565b5f610352565b503d6103dc565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346101015760a036600319011261010157610428610a47565b60243567ffffffffffffffff811161029457610448903690600401610a9f565b9091610452610a73565b608435926001600160e01b03198416840361048a576104879461047e6001600160a01b03610164610fe6565b60643593610ec5565b80f35b8580fd5b5034610101576080366003190112610101576104a8610a5d565b6044359067ffffffffffffffff8211610294576104cc610487923690600401610a9f565b906104d5610a89565b926104e96001600160a01b03610164610fe6565b600435610ded565b50346101015780600319360112610101576020600254604051908152f35b50346101015780600319360112610101576003546040516001600160a01b039091168152602090f35b503461010157602036600319011261010157600154610560906001600160a01b031615610b30565b6001600160a01b0361057061128a565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a280f35b5034610101576020366003190112610101576004356105c86001600160a01b03610164610fe6565b808254036105d4575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b506020366003190112610101576004356001600160801b03811690818103610294577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366679161066360209261035860018060a01b036001541615610b30565b604051908152a180f35b503461010157806003193601126101015760209054604051908152f35b5034610101578060031936011261010157610487610c6a565b5034610792576040366003190112610792576106bd610a47565b6106d06001600160a01b03610164610fe6565b6002546107f5576003546001600160a01b03166107a55780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561079657600380546001600160a01b03191682179055803b15610792575f809160046040518094819363204a7f0760e21b83525af1801561078757610779575080f35b61078591505f90610b74565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b34610792575f366003190112610792576001546040516001600160a01b039091168152602090f35b60603660031901126107925760243567ffffffffffffffff8111610792576108a960049136908301610a9f565b6108b4929192610a73565b6001549093906108cd906001600160a01b031615610b30565b60206001600160a01b036108df610fe6565b16604051948580926337792e1d60e11b82525afa92831561078757610358857fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f95610930935f916109595750610bc9565b6109546001600160a01b0361094361128a565b169460405193849360043585610c1d565b0390a2005b610972915060203d6020116103f4576103e68183610b74565b88610352565b34610792576060366003190112610792577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578360406109b4610a5d565b6109da6109bf610a73565b9182906109d56001600160a01b03610164610fe6565b611041565b6001600160801b038251916004358352166020820152a1005b3461079257602036600319011261079257610a0c610a47565b610a1f6001600160a01b03610164610fe6565b60018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155610785610c6a565b600435906001600160a01b038216820361079257565b602435906001600160a01b038216820361079257565b604435906001600160801b038216820361079257565b606435906001600160801b038216820361079257565b9181601f840112156107925782359167ffffffffffffffff8311610792576020838186019501011161079257565b15610ad457565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b15610b3757565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b90601f8019910116810190811067ffffffffffffffff821117610b9657604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261079257516001600160801b03811681036107925790565b906001600160801b03809116911601906001600160801b038211610be957565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610c44916001600160801b03939796978652606060208701526060860191610bfd565b9416910152565b9081602091031261079257516001600160a01b03811681036107925790565b6001546001600160a01b03168015610d695760049060206001600160a01b03610c91610fe6565b166040519384809263088f50cf60e41b82525afa918215610787576024926020915f91610d3c575b506040516370a0823160e01b815230600482015293849182906001600160a01b03165afa918215610787575f92610d01575b506001600160801b03610cff921690611041565b565b91506020823d602011610d34575b81610d1c60209383610b74565b81010312610792579051906001600160801b03610ceb565b3d9150610d0f565b610d5c9150823d8411610d62575b610d548183610b74565b810190610c4b565b5f610cb9565b503d610d4a565b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b3d15610de8573d9067ffffffffffffffff8211610b965760405191610ddd601f8201601f191660200184610b74565b82523d5f602084013e565b606090565b600354909493906001600160a01b031680610e44575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610e3f9160405194859460018060a01b03169785610c1d565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610ea481610e8760a482018a8d610bfd565b6001600160801b038d16608483015203601f198101835282610b74565b51926207a120f1610eb3610dae565b50610ebe575f610e03565b5050505050565b94909294610ed38682611041565b6003546001600160a01b03169081610f45575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610f29604051958695606087526060870191610bfd565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610fbd818c6001600160801b03610f9160c484018d8f610bfd565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610b74565b51926207a120f1610fcc610dae565b50610ebe575f80610ee6565b5f198114610be95760010190565b6040516303e21fa960e61b8152602081600481305afa908115610787575f9161100d575090565b611026915060203d602011610d6257610d548183610b74565b90565b90816020910312610792575180151581036107925790565b60049160206001600160a01b03611056610fe6565b166040519485809263088f50cf60e41b82525afa928315610787575f93611142575b506001600160801b03168061108c57505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610787575f91611113575b50156110d757565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b611135915060203d60201161113b575b61112d8183610b74565b810190611029565b5f6110cf565b503d611123565b6001600160801b039193506111659060203d602011610d6257610d548183610b74565b9290611078565b6001600160a01b0361117c610fe6565b60405163088f50cf60e41b81529116602082600481845afa918215610787576020926064915f9161126d575b505f6111b261128a565b6040516323b872dd60e01b81526001600160a01b03918216600482015260248101959095526001600160801b039690961660448501529294859384929091165af1908115610787575f9161124e575b501561120957565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b611267915060203d60201161113b5761112d8183610b74565b5f611201565b6112849150843d8611610d6257610d548183610b74565b5f6111a8565b600354336001600160a01b03909116036112a2573290565b339056fea2646970667358221220842b16411a870c58f5a5eb541ff998c88afc8b9453855a717140a5e2fe9fb35864736f6c634300081a0033","sourceMap":"403:6188:157:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f803560e01c806312b22256146109f357806314503e511461097857806329336f391461087c57806336a52a18146108545780635b1b84f7146106a357806360302d241461068a578063701da98e1461066d578063704ed542146106055780638ea59e1d146105a057806391d5a64c146105385780639cb330051461050f578063affed0e0146104f1578063c2df60091461048e578063c78bde771461040e578063d562422214610298578063de1dd2e0146101045763f887ea40146100d5575f80fd5b3461010157806003193601126101015760206100ef610fe6565b6040516001600160a01b039091168152f35b80fd5b50346101015760803660031901126101015761011e610a47565b60243567ffffffffffffffff81116102945761013e903690600401610a9f565b90610147610a73565b92610150610a89565b9361016c6001600160a01b03610164610fe6565b163314610acd565b6002549081610238577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101c761023296610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916838201908152601481019290925261020581603484015b03601f198101835282610b74565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610c1d565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b5060403660031901126101015760043567ffffffffffffffff811161040a576102c5903690600401610a9f565b602435906001600160801b0382168203610406576001546102ef906001600160a01b031615610b30565b600460206001600160a01b03610303610fe6565b16604051928380926337792e1d60e11b82525afa9081156103fb57610358847f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361035d93602099916103ce575b50610bc9565b61116c565b60025461036981610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916878201908152601481019290925261039d81603484016101f7565b519020936103c36001600160a01b036103b461128a565b16946040519384938885610c1d565b0390a2604051908152f35b6103ee9150893d8b116103f4575b6103e68183610b74565b810190610baa565b5f610352565b503d6103dc565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346101015760a036600319011261010157610428610a47565b60243567ffffffffffffffff811161029457610448903690600401610a9f565b9091610452610a73565b608435926001600160e01b03198416840361048a576104879461047e6001600160a01b03610164610fe6565b60643593610ec5565b80f35b8580fd5b5034610101576080366003190112610101576104a8610a5d565b6044359067ffffffffffffffff8211610294576104cc610487923690600401610a9f565b906104d5610a89565b926104e96001600160a01b03610164610fe6565b600435610ded565b50346101015780600319360112610101576020600254604051908152f35b50346101015780600319360112610101576003546040516001600160a01b039091168152602090f35b503461010157602036600319011261010157600154610560906001600160a01b031615610b30565b6001600160a01b0361057061128a565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a280f35b5034610101576020366003190112610101576004356105c86001600160a01b03610164610fe6565b808254036105d4575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b506020366003190112610101576004356001600160801b03811690818103610294577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366679161066360209261035860018060a01b036001541615610b30565b604051908152a180f35b503461010157806003193601126101015760209054604051908152f35b5034610101578060031936011261010157610487610c6a565b5034610792576040366003190112610792576106bd610a47565b6106d06001600160a01b03610164610fe6565b6002546107f5576003546001600160a01b03166107a55780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561079657600380546001600160a01b03191682179055803b15610792575f809160046040518094819363204a7f0760e21b83525af1801561078757610779575080f35b61078591505f90610b74565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b34610792575f366003190112610792576001546040516001600160a01b039091168152602090f35b60603660031901126107925760243567ffffffffffffffff8111610792576108a960049136908301610a9f565b6108b4929192610a73565b6001549093906108cd906001600160a01b031615610b30565b60206001600160a01b036108df610fe6565b16604051948580926337792e1d60e11b82525afa92831561078757610358857fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f95610930935f916109595750610bc9565b6109546001600160a01b0361094361128a565b169460405193849360043585610c1d565b0390a2005b610972915060203d6020116103f4576103e68183610b74565b88610352565b34610792576060366003190112610792577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578360406109b4610a5d565b6109da6109bf610a73565b9182906109d56001600160a01b03610164610fe6565b611041565b6001600160801b038251916004358352166020820152a1005b3461079257602036600319011261079257610a0c610a47565b610a1f6001600160a01b03610164610fe6565b60018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155610785610c6a565b600435906001600160a01b038216820361079257565b602435906001600160a01b038216820361079257565b604435906001600160801b038216820361079257565b606435906001600160801b038216820361079257565b9181601f840112156107925782359167ffffffffffffffff8311610792576020838186019501011161079257565b15610ad457565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b15610b3757565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b90601f8019910116810190811067ffffffffffffffff821117610b9657604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261079257516001600160801b03811681036107925790565b906001600160801b03809116911601906001600160801b038211610be957565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610c44916001600160801b03939796978652606060208701526060860191610bfd565b9416910152565b9081602091031261079257516001600160a01b03811681036107925790565b6001546001600160a01b03168015610d695760049060206001600160a01b03610c91610fe6565b166040519384809263088f50cf60e41b82525afa918215610787576024926020915f91610d3c575b506040516370a0823160e01b815230600482015293849182906001600160a01b03165afa918215610787575f92610d01575b506001600160801b03610cff921690611041565b565b91506020823d602011610d34575b81610d1c60209383610b74565b81010312610792579051906001600160801b03610ceb565b3d9150610d0f565b610d5c9150823d8411610d62575b610d548183610b74565b810190610c4b565b5f610cb9565b503d610d4a565b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b3d15610de8573d9067ffffffffffffffff8211610b965760405191610ddd601f8201601f191660200184610b74565b82523d5f602084013e565b606090565b600354909493906001600160a01b031680610e44575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610e3f9160405194859460018060a01b03169785610c1d565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610ea481610e8760a482018a8d610bfd565b6001600160801b038d16608483015203601f198101835282610b74565b51926207a120f1610eb3610dae565b50610ebe575f610e03565b5050505050565b94909294610ed38682611041565b6003546001600160a01b03169081610f45575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610f29604051958695606087526060870191610bfd565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610fbd818c6001600160801b03610f9160c484018d8f610bfd565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610b74565b51926207a120f1610fcc610dae565b50610ebe575f80610ee6565b5f198114610be95760010190565b6040516303e21fa960e61b8152602081600481305afa908115610787575f9161100d575090565b611026915060203d602011610d6257610d548183610b74565b90565b90816020910312610792575180151581036107925790565b60049160206001600160a01b03611056610fe6565b166040519485809263088f50cf60e41b82525afa928315610787575f93611142575b506001600160801b03168061108c57505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610787575f91611113575b50156110d757565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b611135915060203d60201161113b575b61112d8183610b74565b810190611029565b5f6110cf565b503d611123565b6001600160801b039193506111659060203d602011610d6257610d548183610b74565b9290611078565b6001600160a01b0361117c610fe6565b60405163088f50cf60e41b81529116602082600481845afa918215610787576020926064915f9161126d575b505f6111b261128a565b6040516323b872dd60e01b81526001600160a01b03918216600482015260248101959095526001600160801b039690961660448501529294859384929091165af1908115610787575f9161124e575b501561120957565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b611267915060203d60201161113b5761112d8183610b74565b5f611201565b6112849150843d8611610d6257610d548183610b74565b5f6111a8565b600354336001600160a01b03909116036112a2573290565b339056fea2646970667358221220842b16411a870c58f5a5eb541ff998c88afc8b9453855a717140a5e2fe9fb35864736f6c634300081a0033","sourceMap":"403:6188:157:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;:::-;403:6188;5616:10;:22;5608:81;:::i;:::-;5165:5;403:6188;5165:10;;403:6188;;5511:52;5347:7;5446:50;403:6188;5347:7;;5511:52;5347:7;;:::i;:::-;5165:5;403:6188;;;5412:4;403:6188;;-1:-1:-1;;403:6188:157;5387:42;;;403:6188;;;;;;;;;;5387:42;403:6188;;;;5387:42;;1197:40;;5387:42;;;;;;:::i;:::-;403:6188;5377:53;;403:6188;-1:-1:-1;;;;;403:6188:157;;;;;;5446:50;403:6188;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;5511:52;:::i;:::-;;;;403:6188;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;-1:-1:-1;403:6188:157;;-1:-1:-1;;403:6188:157;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;1000:57;;-1:-1:-1;;;;;403:6188:157;1008:23;1000:57;:::i;:::-;403:6188;;-1:-1:-1;;;;;1094:8:157;;:::i;:::-;403:6188;;;;;;;;;;1086:27;;;;;;;;;1146:16;1086:27;1254:57;1086:27;;1146:16;1086:27;403:6188;1086:27;;;;403:6188;1146:16;;:::i;:::-;;:::i;:::-;1229:7;403:6188;1229:7;;;:::i;:::-;;403:6188;;;1222:4;403:6188;;-1:-1:-1;;403:6188:157;1197:40;;;403:6188;;;;;;;;;;1197:40;403:6188;;;;1197:40;403:6188;1197:40;403:6188;1187:51;;;1254:57;-1:-1:-1;;;;;1283:9:157;;:::i;:::-;403:6188;;;;1254:57;;;;;;:::i;:::-;;;;403:6188;;;;;;1086:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;403:6188;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;403:6188:157;;;;;;5699:1;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;5699:1;;:::i;:::-;403:6188;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;5699:1;403:6188;;;;;;:::i;:::-;;;;:::i;:::-;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;5699:1;:::i;403:6188::-;;;;;;;;;;;;;;568:20;403:6188;;;;;;;;;;;;;;;;;;;;604:22;403:6188;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;1765:57;;-1:-1:-1;;;;;403:6188:157;1773:23;1765:57;:::i;:::-;-1:-1:-1;;;;;1873:9:157;;:::i;:::-;403:6188;1838:45;403:6188;;;;;;;1838:45;403:6188;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;;2539:25;2535:123;;403:6188;;;2535:123;403:6188;;2624:23;403:6188;;;;;;;;2624:23;403:6188;;;-1:-1:-1;403:6188:157;;-1:-1:-1;;403:6188:157;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;2085:39;403:6188;2062:6;403:6188;;1971:57;403:6188;;;;;1979:9;403:6188;;1979:23;1971:57;:::i;2062:6::-;403:6188;;;;;2085:39;403:6188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;4734:5;403:6188;;;4816:7;403:6188;-1:-1:-1;;;;;403:6188:157;;;3743:569:44;;;;;;;;;403:6188:157;3743:569:44;;;;403:6188:157;3743:569:44;403:6188:157;;;;;;;3743:569:44;;403:6188:157;3743:569:44;403:6188:157;4325:22:44;;4321:85;;4816:7:157;403:6188;;-1:-1:-1;;;;;;403:6188:157;;;;;4955:36;;;;;403:6188;;;;;;;;;;;;;4955:36;;;;;;;;;;403:6188;;;4955:36;;;;403:6188;4955:36;;:::i;:::-;403:6188;4955:36;403:6188;;;;;;;;;4955:36;403:6188;;;4321:85:44;4370:25;;;403:6188:157;4370:25:44;403:6188:157;;4370:25:44;403:6188:157;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;1451:57;;-1:-1:-1;;;;;403:6188:157;1459:23;1451:57;:::i;:::-;403:6188;-1:-1:-1;;;;;1545:8:157;;:::i;:::-;403:6188;;;;;;;;;;1537:27;;;;;;;;;1597:16;1537:27;1630:63;1537:27;1597:16;1537:27;403:6188;1537:27;;;1597:16;;:::i;:::-;1630:63;-1:-1:-1;;;;;1665:9:157;;:::i;:::-;403:6188;;;;;;;;;1630:63;;:::i;:::-;;;;403:6188;1537:27;;;;403:6188;1537:27;403:6188;1537:27;;;;;;;:::i;:::-;;;;403:6188;;;;;;-1:-1:-1;;403:6188:157;;;;4592:30;403:6188;;;:::i;:::-;4570:5;403:6188;;:::i;:::-;;;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;4570:5;:::i;:::-;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;4592:30;403:6188;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;;;;;;;;2828:22;403:6188;;;2828:22;403:6188;2828:22;;:::i;403:6188::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;1197:40;;403:6188;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;403:6188:157;;;;;-1:-1:-1;403:6188:157;;;;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:6188:157;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:6188:157;;;;;;;;-1:-1:-1;;403:6188:157;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::o;2137:267::-;403:6188;;-1:-1:-1;;;;;403:6188:157;2194:23;;403:6188;;2289:31;;;-1:-1:-1;;;;;2297:8:157;;:::i;:::-;403:6188;;;;;;;;;;2289:31;;;;;;;;;2276:70;2289:31;;;-1:-1:-1;2289:31:157;;;2137:267;-1:-1:-1;403:6188:157;;-1:-1:-1;;;2276:70:157;;2340:4;2289:31;2276:70;;403:6188;;;;;;-1:-1:-1;;;;;403:6188:157;2276:70;;;;;;;-1:-1:-1;2276:70:157;;;2137:267;403:6188;-1:-1:-1;;;;;2380:16:157;403:6188;;2380:16;;:::i;:::-;2137:267::o;2276:70::-;;;2289:31;2276:70;;2289:31;2276:70;;;;;;2289:31;2276:70;;;:::i;:::-;;;403:6188;;;;;;;-1:-1:-1;;;;;2276:70:157;;;;;-1:-1:-1;2276:70:157;;2289:31;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;403:6188;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1197:40;403:6188;;-1:-1:-1;;403:6188:157;;;;;:::i;:::-;;;;-1:-1:-1;403:6188:157;;;;:::o;:::-;;;:::o;2896:754::-;3113:7;403:6188;2896:754;;;;-1:-1:-1;;;;;403:6188:157;;3109:479;;2896:754;403:6188;3603:40;403:6188;3603:40;403:6188;;;;;;;;;;;;3603:40;;;:::i;:::-;;;;2896:754::o;3109:479::-;-1:-1:-1;403:6188:157;;;;3190:94;;;;3213:37;;;;3190:94;;;;;;403:6188;;;;;;;;;;;;;;;;;3190:94;403:6188;;;;;;;;:::i;:::-;-1:-1:-1;;;;;403:6188:157;;;;;;3190:94;1197:40;;3190:94;;;;;;:::i;:::-;3410:36;;3428:7;3410:36;;;:::i;:::-;;3461:117;;3109:479;;;3461:117;3557:7;;;;;:::o;3656:775::-;;;;;3846:5;;;;:::i;:::-;3867:7;403:6188;-1:-1:-1;;;;;403:6188:157;;;3863:505;;3656:775;403:6188;;4383:41;403:6188;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;403:6188:157;;4383:41;;;3656:775::o;3863:505::-;403:6188;;-1:-1:-1;;;3928:138:157;;;;;;-1:-1:-1;;;;;403:6188:157;;;3928:138;;;403:6188;;;;;;-1:-1:-1;;;;403:6188:157;;-1:-1:-1;;3928:138:157;403:6188;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;403:6188:157;;;;;;3928:138;-1:-1:-1;;3928:138:157;;;;;;:::i;:::-;4192:36;;4210:7;4192:36;;;:::i;:::-;;4243:115;;3863:505;;;;403:6188;-1:-1:-1;;403:6188:157;;;;;;;:::o;666:108::-;403:6188;;-1:-1:-1;;;731:36:157;;;403:6188;731:36;403:6188;752:4;731:36;;;;;;;-1:-1:-1;731:36:157;;;724:43;666:108;:::o;731:36::-;;;;;;;;;;;;;;:::i;:::-;666:108;:::o;403:6188::-;;;;;;;;;;;;;;;;;;:::o;6273:316::-;6389:31;;;-1:-1:-1;;;;;6397:8:157;;:::i;:::-;403:6188;;;;;;;;;;6389:31;;;;;;;;;-1:-1:-1;6389:31:157;;;6273:316;403:6188;-1:-1:-1;;;;;403:6188:157;6436:10;6432:151;;6273:316;;;:::o;6432:151::-;403:6188;;-1:-1:-1;;;6477:40:157;;-1:-1:-1;;;;;403:6188:157;;;6389:31;6477:40;;403:6188;;;;;;;;;6389:31;;403:6188;;6477:40;;403:6188;;-1:-1:-1;;403:6188:157;6477:40;;;;;;;-1:-1:-1;6477:40:157;;;6432:151;403:6188;;;;6273:316::o;403:6188::-;;;-1:-1:-1;;;403:6188:157;;6389:31;;403:6188;;;;;;;;-1:-1:-1;;;6477:40:157;403:6188;;;;;;6477:40;;;;6389:31;6477:40;6389:31;6477:40;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6389:31;-1:-1:-1;;;;;6389:31:157;;;;;;;;;;;;;;;:::i;:::-;;;;;5935:332;-1:-1:-1;;;;;6025:8:157;;:::i;:::-;403:6188;;-1:-1:-1;;;6084:36:157;;403:6188;;6084:36;403:6188;6084:36;403:6188;;6084:36;;;;;;;;;6147:58;6084:36;-1:-1:-1;6084:36:157;;;5935:332;6172:9;-1:-1:-1;6172:9:157;;:::i;:::-;403:6188;;-1:-1:-1;;;6147:58:157;;-1:-1:-1;;;;;403:6188:157;;;6084:36;6147:58;;403:6188;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;6147:58;;;;;;;-1:-1:-1;6147:58:157;;;5935:332;403:6188;;;;5935:332::o;403:6188::-;;;-1:-1:-1;;;403:6188:157;;6084:36;;403:6188;;;;;;;;;;;;;6147:58;;403:6188;6147:58;;;;6084:36;6147:58;6084:36;6147:58;;;;;;;:::i;:::-;;;;6084:36;;;;;;;;;;;;;;:::i;:::-;;;;5747:182;5825:7;403:6188;5811:10;-1:-1:-1;;;;;403:6188:157;;;5811:21;403:6188;;5855:9;5848:16;:::o;5807:116::-;5811:10;5895:17;:::o","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","createDecoder(address,bytes32)":"5b1b84f7","decoder()":"9cb33005","executableBalanceTopUp(uint128)":"704ed542","inheritor()":"36a52a18","initMessage(address,bytes,uint128,uint128)":"de1dd2e0","messageSent(bytes32,address,bytes,uint128)":"c2df6009","nonce()":"affed0e0","replySent(address,bytes,uint128,bytes32,bytes4)":"c78bde77","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","sendValueToInheritor()":"60302d24","setInheritor(address)":"12b22256","stateHash()":"701da98e","updateState(bytes32)":"8ea59e1d","valueClaimed(bytes32,address,uint128)":"14503e51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createDecoder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"executableBalance\",\"type\":\"uint128\"}],\"name\":\"initMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"messageSent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"replySent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inheritor\",\"type\":\"address\"}],\"name\":\"setInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"}],\"name\":\"updateState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"valueClaimed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d\",\"dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99\",\"dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0xdaa3b0c9b0b6ee16e301331fa6eb8924acf99f6d1428506351881187f2c1cbef\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57342861c4a20fb28b983d0235c56d42073138c1996ff6b7ee7e29a0697d31a6\",\"dweb:/ipfs/QmNYCZZFgBADfMR9HSugS4RcH3jniLnEVhRquV6vD82uri\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createDecoder"},{"inputs":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"uint128","name":"executableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initMessage"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"messageSent"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"bytes32","name":"replyTo","type":"bytes32"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"replySent"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sendValueToInheritor"},{"inputs":[{"internalType":"address","name":"_inheritor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setInheritor"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"newStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateState"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"valueClaimed"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072","urls":["bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d","dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235","urls":["bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99","dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0xdaa3b0c9b0b6ee16e301331fa6eb8924acf99f6d1428506351881187f2c1cbef","urls":["bzz-raw://57342861c4a20fb28b983d0235c56d42073138c1996ff6b7ee7e29a0697d31a6","dweb:/ipfs/QmNYCZZFgBADfMR9HSugS4RcH3jniLnEVhRquV6vD82uri"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":74515,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":74517,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":0,"slot":"1","type":"t_address"},{"astId":74519,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"2","type":"t_uint256"},{"astId":74521,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":75099,"exportedSymbols":{"Clones":[41840],"IMirror":[73387],"IMirrorDecoder":[73422],"IMirrorProxy":[73430],"IRouter":[73756],"IWrappedVara":[73767],"Mirror":[75098]},"nodeType":"SourceUnit","src":"39:6553:157","nodes":[{"id":74499,"nodeType":"PragmaDirective","src":"39:24:157","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":74501,"nodeType":"ImportDirective","src":"65:48:157","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":73431,"symbolAliases":[{"foreign":{"id":74500,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"73:12:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74503,"nodeType":"ImportDirective","src":"114:38:157","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":74502,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"122:7:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74505,"nodeType":"ImportDirective","src":"153:38:157","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":73757,"symbolAliases":[{"foreign":{"id":74504,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"161:7:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74507,"nodeType":"ImportDirective","src":"192:48:157","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":73768,"symbolAliases":[{"foreign":{"id":74506,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"200:12:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74509,"nodeType":"ImportDirective","src":"241:52:157","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":73423,"symbolAliases":[{"foreign":{"id":74508,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"249:14:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74511,"nodeType":"ImportDirective","src":"294:64:157","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":75099,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":74510,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"302:6:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75098,"nodeType":"ContractDefinition","src":"403:6188:157","nodes":[{"id":74515,"nodeType":"VariableDeclaration","src":"436:24:157","nodes":[],"baseFunctions":[73274],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"451:9:157","scope":75098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":74517,"nodeType":"VariableDeclaration","src":"466:24:157","nodes":[],"baseFunctions":[73279],"constant":false,"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"481:9:157","scope":75098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74516,"name":"address","nodeType":"ElementaryTypeName","src":"466:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":74519,"nodeType":"VariableDeclaration","src":"568:20:157","nodes":[],"baseFunctions":[73284],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"583:5:157","scope":75098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74518,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":74521,"nodeType":"VariableDeclaration","src":"604:22:157","nodes":[],"baseFunctions":[73294],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"619:7:157","scope":75098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74520,"name":"address","nodeType":"ElementaryTypeName","src":"604:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":74536,"nodeType":"FunctionDefinition","src":"666:108:157","nodes":[],"body":{"id":74535,"nodeType":"Block","src":"714:60:157","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":74529,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"752:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}],"id":74528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"744:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74527,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:157","typeDescriptions":{}}},"id":74530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"744:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74526,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"731:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$73430_$","typeString":"type(contract IMirrorProxy)"}},"id":74531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$73430","typeString":"contract IMirrorProxy"}},"id":74532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"759:6:157","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73429,"src":"731:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":74533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74525,"id":74534,"nodeType":"Return","src":"724:43:157"}]},"baseFunctions":[73289],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"675:6:157","parameters":{"id":74522,"nodeType":"ParameterList","parameters":[],"src":"681:2:157"},"returnParameters":{"id":74525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74536,"src":"705:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74523,"name":"address","nodeType":"ElementaryTypeName","src":"705:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"704:9:157"},"scope":75098,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74595,"nodeType":"FunctionDefinition","src":"893:445:157","nodes":[],"body":{"id":74594,"nodeType":"Block","src":"990:348:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74546,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"1008:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1029:1:157","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":74548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1021:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74547,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:157","typeDescriptions":{}}},"id":74550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1021:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1008:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1033:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74545,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1000:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1000:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74554,"nodeType":"ExpressionStatement","src":"1000:57:157"},{"assignments":[74556],"declarations":[{"constant":false,"id":74556,"mutability":"mutable","name":"baseFee","nameLocation":"1076:7:157","nodeType":"VariableDeclaration","scope":74594,"src":"1068:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74555,"name":"uint128","nodeType":"ElementaryTypeName","src":"1068:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":74563,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74558,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"1094:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74557,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"1086:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":74560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":74561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1104:7:157","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":73700,"src":"1086:25:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":74562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1068:45:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":74567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74565,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74556,"src":"1146:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74566,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74540,"src":"1156:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1146:16:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74564,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75059,"src":"1123:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74569,"nodeType":"ExpressionStatement","src":"1123:40:157"},{"assignments":[74571],"declarations":[{"constant":false,"id":74571,"mutability":"mutable","name":"id","nameLocation":"1182:2:157","nodeType":"VariableDeclaration","scope":74594,"src":"1174:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1174:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":74583,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":74577,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1222:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}],"id":74576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1214:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74575,"name":"address","nodeType":"ElementaryTypeName","src":"1214:7:157","typeDescriptions":{}}},"id":74578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1229:7:157","subExpression":{"id":74579,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74519,"src":"1229:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1197:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1201:12:157","memberName":"encodePacked","nodeType":"MemberAccess","src":"1197:16:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74572,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1187:9:157","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:51:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1174:64:157"},{"eventCall":{"arguments":[{"id":74585,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74571,"src":"1279:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74586,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75022,"src":"1283:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1283:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74588,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74538,"src":"1294:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74589,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74540,"src":"1304:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74584,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"1254:24:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74591,"nodeType":"EmitStatement","src":"1249:62:157"},{"expression":{"id":74592,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74571,"src":"1329:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74544,"id":74593,"nodeType":"Return","src":"1322:9:157"}]},"baseFunctions":[73303],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"902:11:157","parameters":{"id":74541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74538,"mutability":"mutable","name":"_payload","nameLocation":"929:8:157","nodeType":"VariableDeclaration","scope":74595,"src":"914:23:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74537,"name":"bytes","nodeType":"ElementaryTypeName","src":"914:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74540,"mutability":"mutable","name":"_value","nameLocation":"947:6:157","nodeType":"VariableDeclaration","scope":74595,"src":"939:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74539,"name":"uint128","nodeType":"ElementaryTypeName","src":"939:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"913:41:157"},"returnParameters":{"id":74544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74595,"src":"981:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"980:9:157"},"scope":75098,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74638,"nodeType":"FunctionDefinition","src":"1344:356:157","nodes":[],"body":{"id":74637,"nodeType":"Block","src":"1441:259:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74605,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"1459:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1480:1:157","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":74607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1472:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74606,"name":"address","nodeType":"ElementaryTypeName","src":"1472:7:157","typeDescriptions":{}}},"id":74609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1472:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1459:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1484:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1451:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74613,"nodeType":"ExpressionStatement","src":"1451:57:157"},{"assignments":[74615],"declarations":[{"constant":false,"id":74615,"mutability":"mutable","name":"baseFee","nameLocation":"1527:7:157","nodeType":"VariableDeclaration","scope":74637,"src":"1519:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74614,"name":"uint128","nodeType":"ElementaryTypeName","src":"1519:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":74622,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74617,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"1545:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1545:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74616,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"1537:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":74619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":74620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1555:7:157","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":73700,"src":"1537:25:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":74621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1519:45:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":74626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74624,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"1597:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74625,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"1607:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1597:16:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74623,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75059,"src":"1574:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74628,"nodeType":"ExpressionStatement","src":"1574:40:157"},{"eventCall":{"arguments":[{"id":74630,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74597,"src":"1653:10:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74631,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75022,"src":"1665:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74633,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74599,"src":"1676:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74634,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"1686:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74629,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73228,"src":"1630:22:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:63:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74636,"nodeType":"EmitStatement","src":"1625:68:157"}]},"baseFunctions":[73312],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[],"name":"sendReply","nameLocation":"1353:9:157","parameters":{"id":74602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74597,"mutability":"mutable","name":"_repliedTo","nameLocation":"1371:10:157","nodeType":"VariableDeclaration","scope":74638,"src":"1363:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1363:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74599,"mutability":"mutable","name":"_payload","nameLocation":"1398:8:157","nodeType":"VariableDeclaration","scope":74638,"src":"1383:23:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74598,"name":"bytes","nodeType":"ElementaryTypeName","src":"1383:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74601,"mutability":"mutable","name":"_value","nameLocation":"1416:6:157","nodeType":"VariableDeclaration","scope":74638,"src":"1408:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74600,"name":"uint128","nodeType":"ElementaryTypeName","src":"1408:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1362:61:157"},"returnParameters":{"id":74603,"nodeType":"ParameterList","parameters":[],"src":"1441:0:157"},"scope":75098,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74660,"nodeType":"FunctionDefinition","src":"1706:184:157","nodes":[],"body":{"id":74659,"nodeType":"Block","src":"1755:135:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74644,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"1773:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1794:1:157","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":74646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1786:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74645,"name":"address","nodeType":"ElementaryTypeName","src":"1786:7:157","typeDescriptions":{}}},"id":74648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1786:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1798:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1765:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74652,"nodeType":"ExpressionStatement","src":"1765:57:157"},{"eventCall":{"arguments":[{"id":74654,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74640,"src":"1861:10:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74655,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75022,"src":"1873:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1873:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74653,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73235,"src":"1838:22:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":74657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74658,"nodeType":"EmitStatement","src":"1833:50:157"}]},"baseFunctions":[73317],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"1715:10:157","parameters":{"id":74641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74640,"mutability":"mutable","name":"_claimedId","nameLocation":"1734:10:157","nodeType":"VariableDeclaration","scope":74660,"src":"1726:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1726:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1725:20:157"},"returnParameters":{"id":74642,"nodeType":"ParameterList","parameters":[],"src":"1755:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74684,"nodeType":"FunctionDefinition","src":"1896:235:157","nodes":[],"body":{"id":74683,"nodeType":"Block","src":"1961:170:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74666,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"1979:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2000:1:157","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":74668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1992:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74667,"name":"address","nodeType":"ElementaryTypeName","src":"1992:7:157","typeDescriptions":{}}},"id":74670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1992:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1979:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2004:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1971:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74674,"nodeType":"ExpressionStatement","src":"1971:57:157"},{"expression":{"arguments":[{"id":74676,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74662,"src":"2062:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74675,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75059,"src":"2039:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:30:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74678,"nodeType":"ExpressionStatement","src":"2039:30:157"},{"eventCall":{"arguments":[{"id":74680,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74662,"src":"2117:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74679,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73240,"src":"2085:31:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2085:39:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74682,"nodeType":"EmitStatement","src":"2080:44:157"}]},"baseFunctions":[73322],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[],"name":"executableBalanceTopUp","nameLocation":"1905:22:157","parameters":{"id":74663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74662,"mutability":"mutable","name":"_value","nameLocation":"1936:6:157","nodeType":"VariableDeclaration","scope":74684,"src":"1928:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74661,"name":"uint128","nodeType":"ElementaryTypeName","src":"1928:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1927:16:157"},"returnParameters":{"id":74664,"nodeType":"ParameterList","parameters":[],"src":"1961:0:157"},"scope":75098,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74723,"nodeType":"FunctionDefinition","src":"2137:267:157","nodes":[],"body":{"id":74722,"nodeType":"Block","src":"2176:228:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74688,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"2194:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:157","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":74690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74689,"name":"address","nodeType":"ElementaryTypeName","src":"2207:7:157","typeDescriptions":{}}},"id":74692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2194:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973206e6f74207465726d696e61746564","id":74694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2219:27:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""},"value":"program is not terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""}],"id":74687,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2186:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:61:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74696,"nodeType":"ExpressionStatement","src":"2186:61:157"},{"assignments":[74698],"declarations":[{"constant":false,"id":74698,"mutability":"mutable","name":"balance","nameLocation":"2266:7:157","nodeType":"VariableDeclaration","scope":74722,"src":"2258:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74697,"name":"uint256","nodeType":"ElementaryTypeName","src":"2258:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74713,"initialValue":{"arguments":[{"arguments":[{"id":74710,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2340:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}],"id":74709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2332:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74708,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:157","typeDescriptions":{}}},"id":74711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2332:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74701,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"2297:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74700,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"2289:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":74703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":74704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2307:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73600,"src":"2289:29:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:31:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74699,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"2276:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73767_$","typeString":"type(contract IWrappedVara)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"id":74707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2322:9:157","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43097,"src":"2276:55:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:70:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2258:88:157"},{"expression":{"arguments":[{"id":74715,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"2369:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74718,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74698,"src":"2388:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2380:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":74716,"name":"uint128","nodeType":"ElementaryTypeName","src":"2380:7:157","typeDescriptions":{}}},"id":74719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:16:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74714,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"2356:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:41:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74721,"nodeType":"ExpressionStatement","src":"2356:41:157"}]},"baseFunctions":[73325],"functionSelector":"60302d24","implemented":true,"kind":"function","modifiers":[],"name":"sendValueToInheritor","nameLocation":"2146:20:157","parameters":{"id":74685,"nodeType":"ParameterList","parameters":[],"src":"2166:2:157"},"returnParameters":{"id":74686,"nodeType":"ParameterList","parameters":[],"src":"2176:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74744,"nodeType":"FunctionDefinition","src":"2462:202:157","nodes":[],"body":{"id":74743,"nodeType":"Block","src":"2525:139:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":74732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74730,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74515,"src":"2539:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74731,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74725,"src":"2552:12:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2539:25:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74742,"nodeType":"IfStatement","src":"2535:123:157","trueBody":{"id":74741,"nodeType":"Block","src":"2566:92:157","statements":[{"expression":{"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74733,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74515,"src":"2580:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74734,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74725,"src":"2592:12:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2580:24:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74736,"nodeType":"ExpressionStatement","src":"2580:24:157"},{"eventCall":{"arguments":[{"id":74738,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74515,"src":"2637:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":74737,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73206,"src":"2624:12:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":74739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2624:23:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74740,"nodeType":"EmitStatement","src":"2619:28:157"}]}}]},"baseFunctions":[73330],"functionSelector":"8ea59e1d","implemented":true,"kind":"function","modifiers":[{"id":74728,"kind":"modifierInvocation","modifierName":{"id":74727,"name":"onlyRouter","nameLocations":["2514:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"2514:10:157"},"nodeType":"ModifierInvocation","src":"2514:10:157"}],"name":"updateState","nameLocation":"2471:11:157","parameters":{"id":74726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74725,"mutability":"mutable","name":"newStateHash","nameLocation":"2491:12:157","nodeType":"VariableDeclaration","scope":74744,"src":"2483:20:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2482:22:157"},"returnParameters":{"id":74729,"nodeType":"ParameterList","parameters":[],"src":"2525:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74759,"nodeType":"FunctionDefinition","src":"2756:134:157","nodes":[],"body":{"id":74758,"nodeType":"Block","src":"2818:72:157","nodes":[],"statements":[{"expression":{"id":74753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74751,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"2828:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74752,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74746,"src":"2840:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2828:22:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74754,"nodeType":"ExpressionStatement","src":"2828:22:157"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74755,"name":"sendValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74723,"src":"2861:20:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2861:22:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74757,"nodeType":"ExpressionStatement","src":"2861:22:157"}]},"baseFunctions":[73335],"functionSelector":"12b22256","implemented":true,"kind":"function","modifiers":[{"id":74749,"kind":"modifierInvocation","modifierName":{"id":74748,"name":"onlyRouter","nameLocations":["2807:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"2807:10:157"},"nodeType":"ModifierInvocation","src":"2807:10:157"}],"name":"setInheritor","nameLocation":"2765:12:157","parameters":{"id":74747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74746,"mutability":"mutable","name":"_inheritor","nameLocation":"2786:10:157","nodeType":"VariableDeclaration","scope":74759,"src":"2778:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74745,"name":"address","nodeType":"ElementaryTypeName","src":"2778:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2777:20:157"},"returnParameters":{"id":74750,"nodeType":"ParameterList","parameters":[],"src":"2818:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74814,"nodeType":"FunctionDefinition","src":"2896:754:157","nodes":[],"body":{"id":74813,"nodeType":"Block","src":"3009:641:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74772,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"3113:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3132:1:157","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":74774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74773,"name":"address","nodeType":"ElementaryTypeName","src":"3124:7:157","typeDescriptions":{}}},"id":74776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3124:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3113:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74805,"nodeType":"IfStatement","src":"3109:479:157","trueBody":{"id":74804,"nodeType":"Block","src":"3136:452:157","statements":[{"assignments":[74779],"declarations":[{"constant":false,"id":74779,"mutability":"mutable","name":"callData","nameLocation":"3163:8:157","nodeType":"VariableDeclaration","scope":74804,"src":"3150:21:157","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74778,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74790,"initialValue":{"arguments":[{"expression":{"expression":{"id":74782,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"3213:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3228:13:157","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":73408,"src":"3213:28:157","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$returns$__$","typeString":"function IMirrorDecoder.onMessageSent(bytes32,address,bytes calldata,uint128)"}},"id":74784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3242:8:157","memberName":"selector","nodeType":"MemberAccess","src":"3213:37:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":74785,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74761,"src":"3252:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74786,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"3256:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74787,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"3269:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74767,"src":"3278:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":74780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3190:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3194:18:157","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3190:22:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3190:94:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3150:134:157"},{"assignments":[74792,null],"declarations":[{"constant":false,"id":74792,"mutability":"mutable","name":"success","nameLocation":"3398:7:157","nodeType":"VariableDeclaration","scope":74804,"src":"3393:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74791,"name":"bool","nodeType":"ElementaryTypeName","src":"3393:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":74799,"initialValue":{"arguments":[{"id":74797,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74779,"src":"3437:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74793,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"3410:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3418:4:157","memberName":"call","nodeType":"MemberAccess","src":"3410:12:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":74795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428:7:157","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"3410:26:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3410:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3392:54:157"},{"condition":{"id":74800,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74792,"src":"3465:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74803,"nodeType":"IfStatement","src":"3461:117:157","trueBody":{"id":74802,"nodeType":"Block","src":"3474:104:157","statements":[{"functionReturnParameters":74771,"id":74801,"nodeType":"Return","src":"3557:7:157"}]}}]}},{"eventCall":{"arguments":[{"id":74807,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74761,"src":"3611:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74808,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"3615:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74809,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"3628:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74810,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74767,"src":"3637:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74806,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73251,"src":"3603:7:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74812,"nodeType":"EmitStatement","src":"3598:45:157"}]},"baseFunctions":[73346],"functionSelector":"c2df6009","implemented":true,"kind":"function","modifiers":[{"id":74770,"kind":"modifierInvocation","modifierName":{"id":74769,"name":"onlyRouter","nameLocations":["2998:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"2998:10:157"},"nodeType":"ModifierInvocation","src":"2998:10:157"}],"name":"messageSent","nameLocation":"2905:11:157","parameters":{"id":74768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74761,"mutability":"mutable","name":"id","nameLocation":"2925:2:157","nodeType":"VariableDeclaration","scope":74814,"src":"2917:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2917:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74763,"mutability":"mutable","name":"destination","nameLocation":"2937:11:157","nodeType":"VariableDeclaration","scope":74814,"src":"2929:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74762,"name":"address","nodeType":"ElementaryTypeName","src":"2929:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74765,"mutability":"mutable","name":"payload","nameLocation":"2965:7:157","nodeType":"VariableDeclaration","scope":74814,"src":"2950:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74764,"name":"bytes","nodeType":"ElementaryTypeName","src":"2950:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74767,"mutability":"mutable","name":"value","nameLocation":"2982:5:157","nodeType":"VariableDeclaration","scope":74814,"src":"2974:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74766,"name":"uint128","nodeType":"ElementaryTypeName","src":"2974:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2916:72:157"},"returnParameters":{"id":74771,"nodeType":"ParameterList","parameters":[],"src":"3009:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74877,"nodeType":"FunctionDefinition","src":"3656:775:157","nodes":[],"body":{"id":74876,"nodeType":"Block","src":"3810:621:157","nodes":[],"statements":[{"expression":{"arguments":[{"id":74830,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74816,"src":"3833:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74831,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74820,"src":"3846:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74829,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3820:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3820:32:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74833,"nodeType":"ExpressionStatement","src":"3820:32:157"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74834,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"3867:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3886:1:157","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":74836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3878:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74835,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:157","typeDescriptions":{}}},"id":74838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3878:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3867:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74868,"nodeType":"IfStatement","src":"3863:505:157","trueBody":{"id":74867,"nodeType":"Block","src":"3890:478:157","statements":[{"assignments":[74841],"declarations":[{"constant":false,"id":74841,"mutability":"mutable","name":"callData","nameLocation":"3917:8:157","nodeType":"VariableDeclaration","scope":74867,"src":"3904:21:157","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74840,"name":"bytes","nodeType":"ElementaryTypeName","src":"3904:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74853,"initialValue":{"arguments":[{"expression":{"expression":{"id":74844,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"3968:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3983:11:157","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":73421,"src":"3968:26:157","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function IMirrorDecoder.onReplySent(address,bytes calldata,uint128,bytes32,bytes4)"}},"id":74846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3995:8:157","memberName":"selector","nodeType":"MemberAccess","src":"3968:35:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":74847,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74816,"src":"4005:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74848,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74818,"src":"4018:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74849,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74820,"src":"4027:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":74850,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74822,"src":"4034:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74851,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74824,"src":"4043:9:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":74842,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3928:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3932:18:157","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3928:22:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":74852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3928:138:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3904:162:157"},{"assignments":[74855,null],"declarations":[{"constant":false,"id":74855,"mutability":"mutable","name":"success","nameLocation":"4180:7:157","nodeType":"VariableDeclaration","scope":74867,"src":"4175:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74854,"name":"bool","nodeType":"ElementaryTypeName","src":"4175:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":74862,"initialValue":{"arguments":[{"id":74860,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74841,"src":"4219:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74856,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"4192:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4200:4:157","memberName":"call","nodeType":"MemberAccess","src":"4192:12:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":74858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4210:7:157","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"4192:26:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4192:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4174:54:157"},{"condition":{"id":74863,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"4247:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74866,"nodeType":"IfStatement","src":"4243:115:157","trueBody":{"id":74865,"nodeType":"Block","src":"4256:102:157","statements":[{"functionReturnParameters":74828,"id":74864,"nodeType":"Return","src":"4337:7:157"}]}}]}},{"eventCall":{"arguments":[{"id":74870,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74818,"src":"4389:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74820,"src":"4398:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":74872,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74822,"src":"4405:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74873,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74824,"src":"4414:9:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":74869,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73262,"src":"4383:5:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":74874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:41:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74875,"nodeType":"EmitStatement","src":"4378:46:157"}]},"baseFunctions":[73359],"functionSelector":"c78bde77","implemented":true,"kind":"function","modifiers":[{"id":74827,"kind":"modifierInvocation","modifierName":{"id":74826,"name":"onlyRouter","nameLocations":["3795:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"3795:10:157"},"nodeType":"ModifierInvocation","src":"3795:10:157"}],"name":"replySent","nameLocation":"3665:9:157","parameters":{"id":74825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74816,"mutability":"mutable","name":"destination","nameLocation":"3683:11:157","nodeType":"VariableDeclaration","scope":74877,"src":"3675:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74815,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74818,"mutability":"mutable","name":"payload","nameLocation":"3711:7:157","nodeType":"VariableDeclaration","scope":74877,"src":"3696:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74817,"name":"bytes","nodeType":"ElementaryTypeName","src":"3696:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74820,"mutability":"mutable","name":"value","nameLocation":"3728:5:157","nodeType":"VariableDeclaration","scope":74877,"src":"3720:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74819,"name":"uint128","nodeType":"ElementaryTypeName","src":"3720:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":74822,"mutability":"mutable","name":"replyTo","nameLocation":"3743:7:157","nodeType":"VariableDeclaration","scope":74877,"src":"3735:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74824,"mutability":"mutable","name":"replyCode","nameLocation":"3759:9:157","nodeType":"VariableDeclaration","scope":74877,"src":"3752:16:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":74823,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3752:6:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3674:95:157"},"returnParameters":{"id":74828,"nodeType":"ParameterList","parameters":[],"src":"3810:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74899,"nodeType":"FunctionDefinition","src":"4437:192:157","nodes":[],"body":{"id":74898,"nodeType":"Block","src":"4534:95:157","nodes":[],"statements":[{"expression":{"arguments":[{"id":74889,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"4557:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74883,"src":"4570:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74888,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4544:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:32:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74892,"nodeType":"ExpressionStatement","src":"4544:32:157"},{"eventCall":{"arguments":[{"id":74894,"name":"claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74879,"src":"4605:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74895,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74883,"src":"4616:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74893,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73269,"src":"4592:12:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":74896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4592:30:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74897,"nodeType":"EmitStatement","src":"4587:35:157"}]},"baseFunctions":[73368],"functionSelector":"14503e51","implemented":true,"kind":"function","modifiers":[{"id":74886,"kind":"modifierInvocation","modifierName":{"id":74885,"name":"onlyRouter","nameLocations":["4523:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"4523:10:157"},"nodeType":"ModifierInvocation","src":"4523:10:157"}],"name":"valueClaimed","nameLocation":"4446:12:157","parameters":{"id":74884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74879,"mutability":"mutable","name":"claimedId","nameLocation":"4467:9:157","nodeType":"VariableDeclaration","scope":74899,"src":"4459:17:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4459:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74881,"mutability":"mutable","name":"destination","nameLocation":"4486:11:157","nodeType":"VariableDeclaration","scope":74899,"src":"4478:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74880,"name":"address","nodeType":"ElementaryTypeName","src":"4478:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74883,"mutability":"mutable","name":"value","nameLocation":"4507:5:157","nodeType":"VariableDeclaration","scope":74899,"src":"4499:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74882,"name":"uint128","nodeType":"ElementaryTypeName","src":"4499:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4458:55:157"},"returnParameters":{"id":74887,"nodeType":"ParameterList","parameters":[],"src":"4534:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74940,"nodeType":"FunctionDefinition","src":"4635:363:157","nodes":[],"body":{"id":74939,"nodeType":"Block","src":"4716:282:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74909,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74519,"src":"4734:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4743:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4734:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206265666f726520696e6974206d657373616765","id":74912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4746:51:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""},"value":"decoder could only be created before init message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""}],"id":74908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4726:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4726:72:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74914,"nodeType":"ExpressionStatement","src":"4726:72:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74916,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"4816:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:1:157","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":74918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4827:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74917,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:157","typeDescriptions":{}}},"id":74920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4827:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4816:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e6365","id":74922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4839:36:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""},"value":"decoder could only be created once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""}],"id":74915,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4808:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:68:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74924,"nodeType":"ExpressionStatement","src":"4808:68:157"},{"expression":{"id":74931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74925,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"4887:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74928,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74901,"src":"4923:14:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74929,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"4939:4:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":74926,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"4897:6:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":74927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4904:18:157","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"4897:25:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":74930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4897:47:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4887:57:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74932,"nodeType":"ExpressionStatement","src":"4887:57:157"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":74934,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"4970:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74933,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"4955:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:23:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$73422","typeString":"contract IMirrorDecoder"}},"id":74936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4979:10:157","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"4955:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74938,"nodeType":"ExpressionStatement","src":"4955:36:157"}]},"baseFunctions":[73375],"functionSelector":"5b1b84f7","implemented":true,"kind":"function","modifiers":[{"id":74906,"kind":"modifierInvocation","modifierName":{"id":74905,"name":"onlyRouter","nameLocations":["4705:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"4705:10:157"},"nodeType":"ModifierInvocation","src":"4705:10:157"}],"name":"createDecoder","nameLocation":"4644:13:157","parameters":{"id":74904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74901,"mutability":"mutable","name":"implementation","nameLocation":"4666:14:157","nodeType":"VariableDeclaration","scope":74940,"src":"4658:22:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74900,"name":"address","nodeType":"ElementaryTypeName","src":"4658:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74903,"mutability":"mutable","name":"salt","nameLocation":"4690:4:157","nodeType":"VariableDeclaration","scope":74940,"src":"4682:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4682:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4657:38:157"},"returnParameters":{"id":74907,"nodeType":"ParameterList","parameters":[],"src":"4716:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74990,"nodeType":"FunctionDefinition","src":"5004:566:157","nodes":[],"body":{"id":74989,"nodeType":"Block","src":"5147:423:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74954,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74519,"src":"5165:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5174:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5165:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e6974206d657373616765206d7573742062652063726561746564206265666f726520616e79206f7468657273","id":74957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:48:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""},"value":"init message must be created before any others"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""}],"id":74953,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5157:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5157:69:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74959,"nodeType":"ExpressionStatement","src":"5157:69:157"},{"assignments":[74961],"declarations":[{"constant":false,"id":74961,"mutability":"mutable","name":"initNonce","nameLocation":"5335:9:157","nodeType":"VariableDeclaration","scope":74989,"src":"5327:17:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74960,"name":"uint256","nodeType":"ElementaryTypeName","src":"5327:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74964,"initialValue":{"id":74963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5347:7:157","subExpression":{"id":74962,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74519,"src":"5347:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5327:27:157"},{"assignments":[74966],"declarations":[{"constant":false,"id":74966,"mutability":"mutable","name":"id","nameLocation":"5372:2:157","nodeType":"VariableDeclaration","scope":74989,"src":"5364:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5364:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":74977,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":74972,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5412:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75098","typeString":"contract Mirror"}],"id":74971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5404:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74970,"name":"address","nodeType":"ElementaryTypeName","src":"5404:7:157","typeDescriptions":{}}},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74974,"name":"initNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74961,"src":"5419:9:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5387:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5391:12:157","memberName":"encodePacked","nodeType":"MemberAccess","src":"5387:16:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5387:42:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74967,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5377:9:157","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5377:53:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5364:66:157"},{"eventCall":{"arguments":[{"id":74979,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74948,"src":"5478:17:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74978,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73240,"src":"5446:31:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5446:50:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74981,"nodeType":"EmitStatement","src":"5441:55:157"},{"eventCall":{"arguments":[{"id":74983,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74966,"src":"5536:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74984,"name":"source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74942,"src":"5540:6:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74985,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74944,"src":"5548:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74946,"src":"5557:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74982,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"5511:24:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5511:52:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74988,"nodeType":"EmitStatement","src":"5506:57:157"}]},"baseFunctions":[73386],"functionSelector":"de1dd2e0","implemented":true,"kind":"function","modifiers":[{"id":74951,"kind":"modifierInvocation","modifierName":{"id":74950,"name":"onlyRouter","nameLocations":["5132:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75003,"src":"5132:10:157"},"nodeType":"ModifierInvocation","src":"5132:10:157"}],"name":"initMessage","nameLocation":"5013:11:157","parameters":{"id":74949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74942,"mutability":"mutable","name":"source","nameLocation":"5033:6:157","nodeType":"VariableDeclaration","scope":74990,"src":"5025:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74941,"name":"address","nodeType":"ElementaryTypeName","src":"5025:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74944,"mutability":"mutable","name":"payload","nameLocation":"5056:7:157","nodeType":"VariableDeclaration","scope":74990,"src":"5041:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74943,"name":"bytes","nodeType":"ElementaryTypeName","src":"5041:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74946,"mutability":"mutable","name":"value","nameLocation":"5073:5:157","nodeType":"VariableDeclaration","scope":74990,"src":"5065:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74945,"name":"uint128","nodeType":"ElementaryTypeName","src":"5065:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":74948,"mutability":"mutable","name":"executableBalance","nameLocation":"5088:17:157","nodeType":"VariableDeclaration","scope":74990,"src":"5080:25:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74947,"name":"uint128","nodeType":"ElementaryTypeName","src":"5080:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5024:82:157"},"returnParameters":{"id":74952,"nodeType":"ParameterList","parameters":[],"src":"5147:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75003,"nodeType":"ModifierDefinition","src":"5576:131:157","nodes":[],"body":{"id":75002,"nodeType":"Block","src":"5598:109:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74993,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5616:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5620:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5616:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":74995,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"5630:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5630:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5616:22:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6520666f72206f7065726174696f6e","id":74998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5640:48:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""},"value":"only router contract is eligible for operation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""}],"id":74992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5608:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:81:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75000,"nodeType":"ExpressionStatement","src":"5608:81:157"},{"id":75001,"nodeType":"PlaceholderStatement","src":"5699:1:157"}]},"name":"onlyRouter","nameLocation":"5585:10:157","parameters":{"id":74991,"nodeType":"ParameterList","parameters":[],"src":"5595:2:157"},"virtual":false,"visibility":"internal"},{"id":75022,"nodeType":"FunctionDefinition","src":"5747:182:157","nodes":[],"body":{"id":75021,"nodeType":"Block","src":"5797:132:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75008,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5811:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5811:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75010,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74521,"src":"5825:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5811:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75019,"nodeType":"Block","src":"5881:42:157","statements":[{"expression":{"expression":{"id":75016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5902:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5906:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5902:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75007,"id":75018,"nodeType":"Return","src":"5895:17:157"}]},"id":75020,"nodeType":"IfStatement","src":"5807:116:157","trueBody":{"id":75015,"nodeType":"Block","src":"5834:41:157","statements":[{"expression":{"expression":{"id":75012,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"5855:2:157","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5858:6:157","memberName":"origin","nodeType":"MemberAccess","src":"5855:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75007,"id":75014,"nodeType":"Return","src":"5848:16:157"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_source","nameLocation":"5756:7:157","parameters":{"id":75004,"nodeType":"ParameterList","parameters":[],"src":"5763:2:157"},"returnParameters":{"id":75007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75022,"src":"5788:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75005,"name":"address","nodeType":"ElementaryTypeName","src":"5788:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5787:9:157"},"scope":75098,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75059,"nodeType":"FunctionDefinition","src":"5935:332:157","nodes":[],"body":{"id":75058,"nodeType":"Block","src":"5991:276:157","nodes":[],"statements":[{"assignments":[75028],"declarations":[{"constant":false,"id":75028,"mutability":"mutable","name":"routerAddress","nameLocation":"6009:13:157","nodeType":"VariableDeclaration","scope":75058,"src":"6001:21:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75027,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75031,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75029,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"6025:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6001:32:157"},{"assignments":[75034],"declarations":[{"constant":false,"id":75034,"mutability":"mutable","name":"wrappedVara","nameLocation":"6057:11:157","nodeType":"VariableDeclaration","scope":75058,"src":"6044:24:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"},"typeName":{"id":75033,"nodeType":"UserDefinedTypeName","pathNode":{"id":75032,"name":"IWrappedVara","nameLocations":["6044:12:157"],"nodeType":"IdentifierPath","referencedDeclaration":73767,"src":"6044:12:157"},"referencedDeclaration":73767,"src":"6044:12:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":75042,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75037,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75028,"src":"6092:13:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75036,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"6084:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":75038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6084:22:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":75039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6107:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73600,"src":"6084:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6084:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75035,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"6071:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73767_$","typeString":"type(contract IWrappedVara)"}},"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6071:50:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"6044:77:157"},{"assignments":[75044],"declarations":[{"constant":false,"id":75044,"mutability":"mutable","name":"success","nameLocation":"6137:7:157","nodeType":"VariableDeclaration","scope":75058,"src":"6132:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75043,"name":"bool","nodeType":"ElementaryTypeName","src":"6132:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75052,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75047,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75022,"src":"6172:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75049,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75028,"src":"6183:13:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75050,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"6198:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75045,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75034,"src":"6147:11:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"id":75046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6159:12:157","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"6147:24:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":75051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:58:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6132:73:157"},{"expression":{"arguments":[{"id":75054,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75044,"src":"6224:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":75055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6233:26:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":75053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6216:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6216:44:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75057,"nodeType":"ExpressionStatement","src":"6216:44:157"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValueToRouter","nameLocation":"5944:22:157","parameters":{"id":75025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75024,"mutability":"mutable","name":"_value","nameLocation":"5975:6:157","nodeType":"VariableDeclaration","scope":75059,"src":"5967:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75023,"name":"uint128","nodeType":"ElementaryTypeName","src":"5967:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5966:16:157"},"returnParameters":{"id":75026,"nodeType":"ParameterList","parameters":[],"src":"5991:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":75097,"nodeType":"FunctionDefinition","src":"6273:316:157","nodes":[],"body":{"id":75096,"nodeType":"Block","src":"6339:250:157","nodes":[],"statements":[{"assignments":[75068],"declarations":[{"constant":false,"id":75068,"mutability":"mutable","name":"wrappedVara","nameLocation":"6362:11:157","nodeType":"VariableDeclaration","scope":75096,"src":"6349:24:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"},"typeName":{"id":75067,"nodeType":"UserDefinedTypeName","pathNode":{"id":75066,"name":"IWrappedVara","nameLocations":["6349:12:157"],"nodeType":"IdentifierPath","referencedDeclaration":73767,"src":"6349:12:157"},"referencedDeclaration":73767,"src":"6349:12:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":75077,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75071,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"6397:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75070,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"6389:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":75073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":75074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6407:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73600,"src":"6389:29:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:31:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75069,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"6376:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73767_$","typeString":"type(contract IWrappedVara)"}},"id":75076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6376:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"6349:72:157"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75078,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75063,"src":"6436:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6445:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6436:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75095,"nodeType":"IfStatement","src":"6432:151:157","trueBody":{"id":75094,"nodeType":"Block","src":"6448:135:157","statements":[{"assignments":[75082],"declarations":[{"constant":false,"id":75082,"mutability":"mutable","name":"success","nameLocation":"6467:7:157","nodeType":"VariableDeclaration","scope":75094,"src":"6462:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75081,"name":"bool","nodeType":"ElementaryTypeName","src":"6462:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75088,"initialValue":{"arguments":[{"id":75085,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75061,"src":"6498:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75086,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75063,"src":"6511:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75083,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"6477:11:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"id":75084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6489:8:157","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"6477:20:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":75087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6477:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6462:55:157"},{"expression":{"arguments":[{"id":75090,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75082,"src":"6540:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f2073656e64205756617261","id":75091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6549:22:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""},"value":"failed to send WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""}],"id":75089,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6532:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6532:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75093,"nodeType":"ExpressionStatement","src":"6532:40:157"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendValueTo","nameLocation":"6282:12:157","parameters":{"id":75064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75061,"mutability":"mutable","name":"destination","nameLocation":"6303:11:157","nodeType":"VariableDeclaration","scope":75097,"src":"6295:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75060,"name":"address","nodeType":"ElementaryTypeName","src":"6295:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75063,"mutability":"mutable","name":"value","nameLocation":"6324:5:157","nodeType":"VariableDeclaration","scope":75097,"src":"6316:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75062,"name":"uint128","nodeType":"ElementaryTypeName","src":"6316:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6294:36:157"},"returnParameters":{"id":75065,"nodeType":"ParameterList","parameters":[],"src":"6339:0:157"},"scope":75098,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":74512,"name":"IMirror","nameLocations":["422:7:157"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"422:7:157"},"id":74513,"nodeType":"InheritanceSpecifier","src":"422:7:157"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75098,73387],"name":"Mirror","nameLocation":"412:6:157","scope":75099,"usedErrors":[43912,43918],"usedEvents":[73206,73217,73228,73235,73240,73251,73262,73269]}],"license":"UNLICENSED"},"id":157} \ No newline at end of file +{"abi":[{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDecoder","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initMessage","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"executableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageSent","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"replySent","inputs":[{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyTo","type":"bytes32","internalType":"bytes32"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInheritor","inputs":[{"name":"_inheritor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateState","inputs":[{"name":"newStateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"valueClaimed","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608080604052346015576112dc908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c806312b22256146109f357806314503e511461097857806329336f391461087c57806336a52a18146108545780635b1b84f7146106a357806360302d241461068a578063701da98e1461066d578063704ed542146106055780638ea59e1d146105a057806391d5a64c146105385780639cb330051461050f578063affed0e0146104f1578063c2df60091461048e578063c78bde771461040e578063d562422214610298578063de1dd2e0146101045763f887ea40146100d5575f80fd5b3461010157806003193601126101015760206100ef610fe6565b6040516001600160a01b039091168152f35b80fd5b50346101015760803660031901126101015761011e610a47565b60243567ffffffffffffffff81116102945761013e903690600401610a9f565b90610147610a73565b92610150610a89565b9361016c6001600160a01b03610164610fe6565b163314610acd565b6002549081610238577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101c761023296610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916838201908152601481019290925261020581603484015b03601f198101835282610b74565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610c1d565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b5060403660031901126101015760043567ffffffffffffffff811161040a576102c5903690600401610a9f565b602435906001600160801b0382168203610406576001546102ef906001600160a01b031615610b30565b600460206001600160a01b03610303610fe6565b16604051928380926337792e1d60e11b82525afa9081156103fb57610358847f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361035d93602099916103ce575b50610bc9565b61116c565b60025461036981610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916878201908152601481019290925261039d81603484016101f7565b519020936103c36001600160a01b036103b461128a565b16946040519384938885610c1d565b0390a2604051908152f35b6103ee9150893d8b116103f4575b6103e68183610b74565b810190610baa565b5f610352565b503d6103dc565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346101015760a036600319011261010157610428610a47565b60243567ffffffffffffffff811161029457610448903690600401610a9f565b9091610452610a73565b608435926001600160e01b03198416840361048a576104879461047e6001600160a01b03610164610fe6565b60643593610ec5565b80f35b8580fd5b5034610101576080366003190112610101576104a8610a5d565b6044359067ffffffffffffffff8211610294576104cc610487923690600401610a9f565b906104d5610a89565b926104e96001600160a01b03610164610fe6565b600435610ded565b50346101015780600319360112610101576020600254604051908152f35b50346101015780600319360112610101576003546040516001600160a01b039091168152602090f35b503461010157602036600319011261010157600154610560906001600160a01b031615610b30565b6001600160a01b0361057061128a565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a280f35b5034610101576020366003190112610101576004356105c86001600160a01b03610164610fe6565b808254036105d4575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b506020366003190112610101576004356001600160801b03811690818103610294577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366679161066360209261035860018060a01b036001541615610b30565b604051908152a180f35b503461010157806003193601126101015760209054604051908152f35b5034610101578060031936011261010157610487610c6a565b5034610792576040366003190112610792576106bd610a47565b6106d06001600160a01b03610164610fe6565b6002546107f5576003546001600160a01b03166107a55780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561079657600380546001600160a01b03191682179055803b15610792575f809160046040518094819363204a7f0760e21b83525af1801561078757610779575080f35b61078591505f90610b74565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b34610792575f366003190112610792576001546040516001600160a01b039091168152602090f35b60603660031901126107925760243567ffffffffffffffff8111610792576108a960049136908301610a9f565b6108b4929192610a73565b6001549093906108cd906001600160a01b031615610b30565b60206001600160a01b036108df610fe6565b16604051948580926337792e1d60e11b82525afa92831561078757610358857fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f95610930935f916109595750610bc9565b6109546001600160a01b0361094361128a565b169460405193849360043585610c1d565b0390a2005b610972915060203d6020116103f4576103e68183610b74565b88610352565b34610792576060366003190112610792577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578360406109b4610a5d565b6109da6109bf610a73565b9182906109d56001600160a01b03610164610fe6565b611041565b6001600160801b038251916004358352166020820152a1005b3461079257602036600319011261079257610a0c610a47565b610a1f6001600160a01b03610164610fe6565b60018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155610785610c6a565b600435906001600160a01b038216820361079257565b602435906001600160a01b038216820361079257565b604435906001600160801b038216820361079257565b606435906001600160801b038216820361079257565b9181601f840112156107925782359167ffffffffffffffff8311610792576020838186019501011161079257565b15610ad457565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b15610b3757565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b90601f8019910116810190811067ffffffffffffffff821117610b9657604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261079257516001600160801b03811681036107925790565b906001600160801b03809116911601906001600160801b038211610be957565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610c44916001600160801b03939796978652606060208701526060860191610bfd565b9416910152565b9081602091031261079257516001600160a01b03811681036107925790565b6001546001600160a01b03168015610d695760049060206001600160a01b03610c91610fe6565b166040519384809263088f50cf60e41b82525afa918215610787576024926020915f91610d3c575b506040516370a0823160e01b815230600482015293849182906001600160a01b03165afa918215610787575f92610d01575b506001600160801b03610cff921690611041565b565b91506020823d602011610d34575b81610d1c60209383610b74565b81010312610792579051906001600160801b03610ceb565b3d9150610d0f565b610d5c9150823d8411610d62575b610d548183610b74565b810190610c4b565b5f610cb9565b503d610d4a565b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b3d15610de8573d9067ffffffffffffffff8211610b965760405191610ddd601f8201601f191660200184610b74565b82523d5f602084013e565b606090565b600354909493906001600160a01b031680610e44575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610e3f9160405194859460018060a01b03169785610c1d565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610ea481610e8760a482018a8d610bfd565b6001600160801b038d16608483015203601f198101835282610b74565b51926207a120f1610eb3610dae565b50610ebe575f610e03565b5050505050565b94909294610ed38682611041565b6003546001600160a01b03169081610f45575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610f29604051958695606087526060870191610bfd565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610fbd818c6001600160801b03610f9160c484018d8f610bfd565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610b74565b51926207a120f1610fcc610dae565b50610ebe575f80610ee6565b5f198114610be95760010190565b6040516303e21fa960e61b8152602081600481305afa908115610787575f9161100d575090565b611026915060203d602011610d6257610d548183610b74565b90565b90816020910312610792575180151581036107925790565b60049160206001600160a01b03611056610fe6565b166040519485809263088f50cf60e41b82525afa928315610787575f93611142575b506001600160801b03168061108c57505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610787575f91611113575b50156110d757565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b611135915060203d60201161113b575b61112d8183610b74565b810190611029565b5f6110cf565b503d611123565b6001600160801b039193506111659060203d602011610d6257610d548183610b74565b9290611078565b6001600160a01b0361117c610fe6565b60405163088f50cf60e41b81529116602082600481845afa918215610787576020926064915f9161126d575b505f6111b261128a565b6040516323b872dd60e01b81526001600160a01b03918216600482015260248101959095526001600160801b039690961660448501529294859384929091165af1908115610787575f9161124e575b501561120957565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b611267915060203d60201161113b5761112d8183610b74565b5f611201565b6112849150843d8611610d6257610d548183610b74565b5f6111a8565b600354336001600160a01b03909116036112a2573290565b339056fea264697066735822122053014fd347f0badd5a640fea8157059cb031141fb96d1162746883ff7e93eb8e64736f6c634300081a0033","sourceMap":"403:6188:157:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f803560e01c806312b22256146109f357806314503e511461097857806329336f391461087c57806336a52a18146108545780635b1b84f7146106a357806360302d241461068a578063701da98e1461066d578063704ed542146106055780638ea59e1d146105a057806391d5a64c146105385780639cb330051461050f578063affed0e0146104f1578063c2df60091461048e578063c78bde771461040e578063d562422214610298578063de1dd2e0146101045763f887ea40146100d5575f80fd5b3461010157806003193601126101015760206100ef610fe6565b6040516001600160a01b039091168152f35b80fd5b50346101015760803660031901126101015761011e610a47565b60243567ffffffffffffffff81116102945761013e903690600401610a9f565b90610147610a73565b92610150610a89565b9361016c6001600160a01b03610164610fe6565b163314610acd565b6002549081610238577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101c761023296610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916838201908152601481019290925261020581603484015b03601f198101835282610b74565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610c1d565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b5060403660031901126101015760043567ffffffffffffffff811161040a576102c5903690600401610a9f565b602435906001600160801b0382168203610406576001546102ef906001600160a01b031615610b30565b600460206001600160a01b03610303610fe6565b16604051928380926337792e1d60e11b82525afa9081156103fb57610358847f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361035d93602099916103ce575b50610bc9565b61116c565b60025461036981610fd8565b6002556040513060601b6bffffffffffffffffffffffff1916878201908152601481019290925261039d81603484016101f7565b519020936103c36001600160a01b036103b461128a565b16946040519384938885610c1d565b0390a2604051908152f35b6103ee9150893d8b116103f4575b6103e68183610b74565b810190610baa565b5f610352565b503d6103dc565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346101015760a036600319011261010157610428610a47565b60243567ffffffffffffffff811161029457610448903690600401610a9f565b9091610452610a73565b608435926001600160e01b03198416840361048a576104879461047e6001600160a01b03610164610fe6565b60643593610ec5565b80f35b8580fd5b5034610101576080366003190112610101576104a8610a5d565b6044359067ffffffffffffffff8211610294576104cc610487923690600401610a9f565b906104d5610a89565b926104e96001600160a01b03610164610fe6565b600435610ded565b50346101015780600319360112610101576020600254604051908152f35b50346101015780600319360112610101576003546040516001600160a01b039091168152602090f35b503461010157602036600319011261010157600154610560906001600160a01b031615610b30565b6001600160a01b0361057061128a565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a280f35b5034610101576020366003190112610101576004356105c86001600160a01b03610164610fe6565b808254036105d4575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b506020366003190112610101576004356001600160801b03811690818103610294577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366679161066360209261035860018060a01b036001541615610b30565b604051908152a180f35b503461010157806003193601126101015760209054604051908152f35b5034610101578060031936011261010157610487610c6a565b5034610792576040366003190112610792576106bd610a47565b6106d06001600160a01b03610164610fe6565b6002546107f5576003546001600160a01b03166107a55780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561079657600380546001600160a01b03191682179055803b15610792575f809160046040518094819363204a7f0760e21b83525af1801561078757610779575080f35b61078591505f90610b74565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b34610792575f366003190112610792576001546040516001600160a01b039091168152602090f35b60603660031901126107925760243567ffffffffffffffff8111610792576108a960049136908301610a9f565b6108b4929192610a73565b6001549093906108cd906001600160a01b031615610b30565b60206001600160a01b036108df610fe6565b16604051948580926337792e1d60e11b82525afa92831561078757610358857fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f95610930935f916109595750610bc9565b6109546001600160a01b0361094361128a565b169460405193849360043585610c1d565b0390a2005b610972915060203d6020116103f4576103e68183610b74565b88610352565b34610792576060366003190112610792577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578360406109b4610a5d565b6109da6109bf610a73565b9182906109d56001600160a01b03610164610fe6565b611041565b6001600160801b038251916004358352166020820152a1005b3461079257602036600319011261079257610a0c610a47565b610a1f6001600160a01b03610164610fe6565b60018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155610785610c6a565b600435906001600160a01b038216820361079257565b602435906001600160a01b038216820361079257565b604435906001600160801b038216820361079257565b606435906001600160801b038216820361079257565b9181601f840112156107925782359167ffffffffffffffff8311610792576020838186019501011161079257565b15610ad457565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b15610b3757565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b90601f8019910116810190811067ffffffffffffffff821117610b9657604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261079257516001600160801b03811681036107925790565b906001600160801b03809116911601906001600160801b038211610be957565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610c44916001600160801b03939796978652606060208701526060860191610bfd565b9416910152565b9081602091031261079257516001600160a01b03811681036107925790565b6001546001600160a01b03168015610d695760049060206001600160a01b03610c91610fe6565b166040519384809263088f50cf60e41b82525afa918215610787576024926020915f91610d3c575b506040516370a0823160e01b815230600482015293849182906001600160a01b03165afa918215610787575f92610d01575b506001600160801b03610cff921690611041565b565b91506020823d602011610d34575b81610d1c60209383610b74565b81010312610792579051906001600160801b03610ceb565b3d9150610d0f565b610d5c9150823d8411610d62575b610d548183610b74565b810190610c4b565b5f610cb9565b503d610d4a565b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b3d15610de8573d9067ffffffffffffffff8211610b965760405191610ddd601f8201601f191660200184610b74565b82523d5f602084013e565b606090565b600354909493906001600160a01b031680610e44575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610e3f9160405194859460018060a01b03169785610c1d565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610ea481610e8760a482018a8d610bfd565b6001600160801b038d16608483015203601f198101835282610b74565b51926207a120f1610eb3610dae565b50610ebe575f610e03565b5050505050565b94909294610ed38682611041565b6003546001600160a01b03169081610f45575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610f29604051958695606087526060870191610bfd565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610fbd818c6001600160801b03610f9160c484018d8f610bfd565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610b74565b51926207a120f1610fcc610dae565b50610ebe575f80610ee6565b5f198114610be95760010190565b6040516303e21fa960e61b8152602081600481305afa908115610787575f9161100d575090565b611026915060203d602011610d6257610d548183610b74565b90565b90816020910312610792575180151581036107925790565b60049160206001600160a01b03611056610fe6565b166040519485809263088f50cf60e41b82525afa928315610787575f93611142575b506001600160801b03168061108c57505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610787575f91611113575b50156110d757565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b611135915060203d60201161113b575b61112d8183610b74565b810190611029565b5f6110cf565b503d611123565b6001600160801b039193506111659060203d602011610d6257610d548183610b74565b9290611078565b6001600160a01b0361117c610fe6565b60405163088f50cf60e41b81529116602082600481845afa918215610787576020926064915f9161126d575b505f6111b261128a565b6040516323b872dd60e01b81526001600160a01b03918216600482015260248101959095526001600160801b039690961660448501529294859384929091165af1908115610787575f9161124e575b501561120957565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b611267915060203d60201161113b5761112d8183610b74565b5f611201565b6112849150843d8611610d6257610d548183610b74565b5f6111a8565b600354336001600160a01b03909116036112a2573290565b339056fea264697066735822122053014fd347f0badd5a640fea8157059cb031141fb96d1162746883ff7e93eb8e64736f6c634300081a0033","sourceMap":"403:6188:157:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;:::-;403:6188;5616:10;:22;5608:81;:::i;:::-;5165:5;403:6188;5165:10;;403:6188;;5511:52;5347:7;5446:50;403:6188;5347:7;;5511:52;5347:7;;:::i;:::-;5165:5;403:6188;;;5412:4;403:6188;;-1:-1:-1;;403:6188:157;5387:42;;;403:6188;;;;;;;;;;5387:42;403:6188;;;;5387:42;;1197:40;;5387:42;;;;;;:::i;:::-;403:6188;5377:53;;403:6188;-1:-1:-1;;;;;403:6188:157;;;;;;5446:50;403:6188;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;5511:52;:::i;:::-;;;;403:6188;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;-1:-1:-1;403:6188:157;;-1:-1:-1;;403:6188:157;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;1000:57;;-1:-1:-1;;;;;403:6188:157;1008:23;1000:57;:::i;:::-;403:6188;;-1:-1:-1;;;;;1094:8:157;;:::i;:::-;403:6188;;;;;;;;;;1086:27;;;;;;;;;1146:16;1086:27;1254:57;1086:27;;1146:16;1086:27;403:6188;1086:27;;;;403:6188;1146:16;;:::i;:::-;;:::i;:::-;1229:7;403:6188;1229:7;;;:::i;:::-;;403:6188;;;1222:4;403:6188;;-1:-1:-1;;403:6188:157;1197:40;;;403:6188;;;;;;;;;;1197:40;403:6188;;;;1197:40;403:6188;1197:40;403:6188;1187:51;;;1254:57;-1:-1:-1;;;;;1283:9:157;;:::i;:::-;403:6188;;;;1254:57;;;;;;:::i;:::-;;;;403:6188;;;;;;1086:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;403:6188;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;403:6188:157;;;;;;5699:1;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;5699:1;;:::i;:::-;403:6188;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;;;;;;;;;;5699:1;403:6188;;;;;;:::i;:::-;;;;:::i;:::-;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;5699:1;:::i;403:6188::-;;;;;;;;;;;;;;568:20;403:6188;;;;;;;;;;;;;;;;;;;;604:22;403:6188;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;1765:57;;-1:-1:-1;;;;;403:6188:157;1773:23;1765:57;:::i;:::-;-1:-1:-1;;;;;1873:9:157;;:::i;:::-;403:6188;1838:45;403:6188;;;;;;;1838:45;403:6188;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;;2539:25;2535:123;;403:6188;;;2535:123;403:6188;;2624:23;403:6188;;;;;;;;2624:23;403:6188;;;-1:-1:-1;403:6188:157;;-1:-1:-1;;403:6188:157;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;2085:39;403:6188;2062:6;403:6188;;1971:57;403:6188;;;;;1979:9;403:6188;;1979:23;1971:57;:::i;2062:6::-;403:6188;;;;;2085:39;403:6188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;4734:5;403:6188;;;4816:7;403:6188;-1:-1:-1;;;;;403:6188:157;;;3743:569:44;;;;;;;;;403:6188:157;3743:569:44;;;;403:6188:157;3743:569:44;403:6188:157;;;;;;;3743:569:44;;403:6188:157;3743:569:44;403:6188:157;4325:22:44;;4321:85;;4816:7:157;403:6188;;-1:-1:-1;;;;;;403:6188:157;;;;;4955:36;;;;;403:6188;;;;;;;;;;;;;4955:36;;;;;;;;;;403:6188;;;4955:36;;;;403:6188;4955:36;;:::i;:::-;403:6188;4955:36;403:6188;;;;;;;;;4955:36;403:6188;;;4321:85:44;4370:25;;;403:6188:157;4370:25:44;403:6188:157;;4370:25:44;403:6188:157;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;-1:-1:-1;;403:6188:157;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;1451:57;;-1:-1:-1;;;;;403:6188:157;1459:23;1451:57;:::i;:::-;403:6188;-1:-1:-1;;;;;1545:8:157;;:::i;:::-;403:6188;;;;;;;;;;1537:27;;;;;;;;;1597:16;1537:27;1630:63;1537:27;1597:16;1537:27;403:6188;1537:27;;;1597:16;;:::i;:::-;1630:63;-1:-1:-1;;;;;1665:9:157;;:::i;:::-;403:6188;;;;;;;;;1630:63;;:::i;:::-;;;;403:6188;1537:27;;;;403:6188;1537:27;403:6188;1537:27;;;;;;;:::i;:::-;;;;403:6188;;;;;;-1:-1:-1;;403:6188:157;;;;4592:30;403:6188;;;:::i;:::-;4570:5;403:6188;;:::i;:::-;;;;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;4570:5;:::i;:::-;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;4592:30;403:6188;;;;;;;-1:-1:-1;;403:6188:157;;;;;;:::i;:::-;5608:81;-1:-1:-1;;;;;5630:8:157;;:::i;5608:81::-;403:6188;;;;;;;;;2828:22;403:6188;;;2828:22;403:6188;2828:22;;:::i;403:6188::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:6188:157;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;1197:40;;403:6188;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;403:6188:157;;;;;-1:-1:-1;403:6188:157;;;;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:6188:157;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:6188:157;;;;;;;;-1:-1:-1;;403:6188:157;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::o;2137:267::-;403:6188;;-1:-1:-1;;;;;403:6188:157;2194:23;;403:6188;;2289:31;;;-1:-1:-1;;;;;2297:8:157;;:::i;:::-;403:6188;;;;;;;;;;2289:31;;;;;;;;;2276:70;2289:31;;;-1:-1:-1;2289:31:157;;;2137:267;-1:-1:-1;403:6188:157;;-1:-1:-1;;;2276:70:157;;2340:4;2289:31;2276:70;;403:6188;;;;;;-1:-1:-1;;;;;403:6188:157;2276:70;;;;;;;-1:-1:-1;2276:70:157;;;2137:267;403:6188;-1:-1:-1;;;;;2380:16:157;403:6188;;2380:16;;:::i;:::-;2137:267::o;2276:70::-;;;2289:31;2276:70;;2289:31;2276:70;;;;;;2289:31;2276:70;;;:::i;:::-;;;403:6188;;;;;;;-1:-1:-1;;;;;2276:70:157;;;;;-1:-1:-1;2276:70:157;;2289:31;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;403:6188;;;-1:-1:-1;;;403:6188:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1197:40;403:6188;;-1:-1:-1;;403:6188:157;;;;;:::i;:::-;;;;-1:-1:-1;403:6188:157;;;;:::o;:::-;;;:::o;2896:754::-;3113:7;403:6188;2896:754;;;;-1:-1:-1;;;;;403:6188:157;;3109:479;;2896:754;403:6188;3603:40;403:6188;3603:40;403:6188;;;;;;;;;;;;3603:40;;;:::i;:::-;;;;2896:754::o;3109:479::-;-1:-1:-1;403:6188:157;;;;3190:94;;;;3213:37;;;;3190:94;;;;;;403:6188;;;;;;;;;;;;;;;;;3190:94;403:6188;;;;;;;;:::i;:::-;-1:-1:-1;;;;;403:6188:157;;;;;;3190:94;1197:40;;3190:94;;;;;;:::i;:::-;3410:36;;3428:7;3410:36;;;:::i;:::-;;3461:117;;3109:479;;;3461:117;3557:7;;;;;:::o;3656:775::-;;;;;3846:5;;;;:::i;:::-;3867:7;403:6188;-1:-1:-1;;;;;403:6188:157;;;3863:505;;3656:775;403:6188;;4383:41;403:6188;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;403:6188:157;;4383:41;;;3656:775::o;3863:505::-;403:6188;;-1:-1:-1;;;3928:138:157;;;;;;-1:-1:-1;;;;;403:6188:157;;;3928:138;;;403:6188;;;;;;-1:-1:-1;;;;403:6188:157;;-1:-1:-1;;3928:138:157;403:6188;;-1:-1:-1;;;;;403:6188:157;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;403:6188:157;;;;;;3928:138;-1:-1:-1;;3928:138:157;;;;;;:::i;:::-;4192:36;;4210:7;4192:36;;;:::i;:::-;;4243:115;;3863:505;;;;403:6188;-1:-1:-1;;403:6188:157;;;;;;;:::o;666:108::-;403:6188;;-1:-1:-1;;;731:36:157;;;403:6188;731:36;403:6188;752:4;731:36;;;;;;;-1:-1:-1;731:36:157;;;724:43;666:108;:::o;731:36::-;;;;;;;;;;;;;;:::i;:::-;666:108;:::o;403:6188::-;;;;;;;;;;;;;;;;;;:::o;6273:316::-;6389:31;;;-1:-1:-1;;;;;6397:8:157;;:::i;:::-;403:6188;;;;;;;;;;6389:31;;;;;;;;;-1:-1:-1;6389:31:157;;;6273:316;403:6188;-1:-1:-1;;;;;403:6188:157;6436:10;6432:151;;6273:316;;;:::o;6432:151::-;403:6188;;-1:-1:-1;;;6477:40:157;;-1:-1:-1;;;;;403:6188:157;;;6389:31;6477:40;;403:6188;;;;;;;;;6389:31;;403:6188;;6477:40;;403:6188;;-1:-1:-1;;403:6188:157;6477:40;;;;;;;-1:-1:-1;6477:40:157;;;6432:151;403:6188;;;;6273:316::o;403:6188::-;;;-1:-1:-1;;;403:6188:157;;6389:31;;403:6188;;;;;;;;-1:-1:-1;;;6477:40:157;403:6188;;;;;;6477:40;;;;6389:31;6477:40;6389:31;6477:40;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6389:31;-1:-1:-1;;;;;6389:31:157;;;;;;;;;;;;;;;:::i;:::-;;;;;5935:332;-1:-1:-1;;;;;6025:8:157;;:::i;:::-;403:6188;;-1:-1:-1;;;6084:36:157;;403:6188;;6084:36;403:6188;6084:36;403:6188;;6084:36;;;;;;;;;6147:58;6084:36;-1:-1:-1;6084:36:157;;;5935:332;6172:9;-1:-1:-1;6172:9:157;;:::i;:::-;403:6188;;-1:-1:-1;;;6147:58:157;;-1:-1:-1;;;;;403:6188:157;;;6084:36;6147:58;;403:6188;;;;;;;;-1:-1:-1;;;;;403:6188:157;;;;;;;;;;;;;;-1:-1:-1;;403:6188:157;6147:58;;;;;;;-1:-1:-1;6147:58:157;;;5935:332;403:6188;;;;5935:332::o;403:6188::-;;;-1:-1:-1;;;403:6188:157;;6084:36;;403:6188;;;;;;;;;;;;;6147:58;;403:6188;6147:58;;;;6084:36;6147:58;6084:36;6147:58;;;;;;;:::i;:::-;;;;6084:36;;;;;;;;;;;;;;:::i;:::-;;;;5747:182;5825:7;403:6188;5811:10;-1:-1:-1;;;;;403:6188:157;;;5811:21;403:6188;;5855:9;5848:16;:::o;5807:116::-;5811:10;5895:17;:::o","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","createDecoder(address,bytes32)":"5b1b84f7","decoder()":"9cb33005","executableBalanceTopUp(uint128)":"704ed542","inheritor()":"36a52a18","initMessage(address,bytes,uint128,uint128)":"de1dd2e0","messageSent(bytes32,address,bytes,uint128)":"c2df6009","nonce()":"affed0e0","replySent(address,bytes,uint128,bytes32,bytes4)":"c78bde77","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","sendValueToInheritor()":"60302d24","setInheritor(address)":"12b22256","stateHash()":"701da98e","updateState(bytes32)":"8ea59e1d","valueClaimed(bytes32,address,uint128)":"14503e51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createDecoder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"executableBalance\",\"type\":\"uint128\"}],\"name\":\"initMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"messageSent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"replySent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inheritor\",\"type\":\"address\"}],\"name\":\"setInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"}],\"name\":\"updateState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"valueClaimed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d\",\"dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f\",\"dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0xdaa3b0c9b0b6ee16e301331fa6eb8924acf99f6d1428506351881187f2c1cbef\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57342861c4a20fb28b983d0235c56d42073138c1996ff6b7ee7e29a0697d31a6\",\"dweb:/ipfs/QmNYCZZFgBADfMR9HSugS4RcH3jniLnEVhRquV6vD82uri\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createDecoder"},{"inputs":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"uint128","name":"executableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initMessage"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"messageSent"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"bytes32","name":"replyTo","type":"bytes32"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"replySent"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sendValueToInheritor"},{"inputs":[{"internalType":"address","name":"_inheritor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setInheritor"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"newStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateState"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"valueClaimed"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072","urls":["bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d","dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f","urls":["bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f","dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0xdaa3b0c9b0b6ee16e301331fa6eb8924acf99f6d1428506351881187f2c1cbef","urls":["bzz-raw://57342861c4a20fb28b983d0235c56d42073138c1996ff6b7ee7e29a0697d31a6","dweb:/ipfs/QmNYCZZFgBADfMR9HSugS4RcH3jniLnEVhRquV6vD82uri"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":74522,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":74524,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":0,"slot":"1","type":"t_address"},{"astId":74526,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"2","type":"t_uint256"},{"astId":74528,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":75106,"exportedSymbols":{"Clones":[41840],"IMirror":[73387],"IMirrorDecoder":[73422],"IMirrorProxy":[73430],"IRouter":[73763],"IWrappedVara":[73774],"Mirror":[75105]},"nodeType":"SourceUnit","src":"39:6553:157","nodes":[{"id":74506,"nodeType":"PragmaDirective","src":"39:24:157","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":74508,"nodeType":"ImportDirective","src":"65:48:157","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":73431,"symbolAliases":[{"foreign":{"id":74507,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"73:12:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74510,"nodeType":"ImportDirective","src":"114:38:157","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":74509,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"122:7:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74512,"nodeType":"ImportDirective","src":"153:38:157","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":73764,"symbolAliases":[{"foreign":{"id":74511,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"161:7:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74514,"nodeType":"ImportDirective","src":"192:48:157","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":73775,"symbolAliases":[{"foreign":{"id":74513,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"200:12:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74516,"nodeType":"ImportDirective","src":"241:52:157","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":73423,"symbolAliases":[{"foreign":{"id":74515,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"249:14:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74518,"nodeType":"ImportDirective","src":"294:64:157","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":75106,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":74517,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"302:6:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75105,"nodeType":"ContractDefinition","src":"403:6188:157","nodes":[{"id":74522,"nodeType":"VariableDeclaration","src":"436:24:157","nodes":[],"baseFunctions":[73274],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"451:9:157","scope":75105,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":74524,"nodeType":"VariableDeclaration","src":"466:24:157","nodes":[],"baseFunctions":[73279],"constant":false,"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"481:9:157","scope":75105,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74523,"name":"address","nodeType":"ElementaryTypeName","src":"466:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":74526,"nodeType":"VariableDeclaration","src":"568:20:157","nodes":[],"baseFunctions":[73284],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"583:5:157","scope":75105,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74525,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":74528,"nodeType":"VariableDeclaration","src":"604:22:157","nodes":[],"baseFunctions":[73294],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"619:7:157","scope":75105,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74527,"name":"address","nodeType":"ElementaryTypeName","src":"604:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":74543,"nodeType":"FunctionDefinition","src":"666:108:157","nodes":[],"body":{"id":74542,"nodeType":"Block","src":"714:60:157","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":74536,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"752:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}],"id":74535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"744:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74534,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:157","typeDescriptions":{}}},"id":74537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"744:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74533,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"731:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$73430_$","typeString":"type(contract IMirrorProxy)"}},"id":74538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$73430","typeString":"contract IMirrorProxy"}},"id":74539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"759:6:157","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73429,"src":"731:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":74540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74532,"id":74541,"nodeType":"Return","src":"724:43:157"}]},"baseFunctions":[73289],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"675:6:157","parameters":{"id":74529,"nodeType":"ParameterList","parameters":[],"src":"681:2:157"},"returnParameters":{"id":74532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74543,"src":"705:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74530,"name":"address","nodeType":"ElementaryTypeName","src":"705:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"704:9:157"},"scope":75105,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74602,"nodeType":"FunctionDefinition","src":"893:445:157","nodes":[],"body":{"id":74601,"nodeType":"Block","src":"990:348:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74553,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"1008:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1029:1:157","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":74555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1021:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74554,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:157","typeDescriptions":{}}},"id":74557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1021:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1008:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1033:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1000:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1000:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74561,"nodeType":"ExpressionStatement","src":"1000:57:157"},{"assignments":[74563],"declarations":[{"constant":false,"id":74563,"mutability":"mutable","name":"baseFee","nameLocation":"1076:7:157","nodeType":"VariableDeclaration","scope":74601,"src":"1068:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74562,"name":"uint128","nodeType":"ElementaryTypeName","src":"1068:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":74570,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74565,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"1094:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74564,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"1086:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":74567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":74568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1104:7:157","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":73707,"src":"1086:25:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":74569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1068:45:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":74574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74572,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74563,"src":"1146:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74573,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"1156:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1146:16:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74571,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75066,"src":"1123:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74576,"nodeType":"ExpressionStatement","src":"1123:40:157"},{"assignments":[74578],"declarations":[{"constant":false,"id":74578,"mutability":"mutable","name":"id","nameLocation":"1182:2:157","nodeType":"VariableDeclaration","scope":74601,"src":"1174:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1174:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":74590,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":74584,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1222:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}],"id":74583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1214:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74582,"name":"address","nodeType":"ElementaryTypeName","src":"1214:7:157","typeDescriptions":{}}},"id":74585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1229:7:157","subExpression":{"id":74586,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74526,"src":"1229:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74580,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1197:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1201:12:157","memberName":"encodePacked","nodeType":"MemberAccess","src":"1197:16:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74579,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1187:9:157","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:51:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1174:64:157"},{"eventCall":{"arguments":[{"id":74592,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74578,"src":"1279:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74593,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"1283:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1283:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74595,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74545,"src":"1294:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74596,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"1304:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74591,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"1254:24:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74598,"nodeType":"EmitStatement","src":"1249:62:157"},{"expression":{"id":74599,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74578,"src":"1329:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74551,"id":74600,"nodeType":"Return","src":"1322:9:157"}]},"baseFunctions":[73303],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"902:11:157","parameters":{"id":74548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74545,"mutability":"mutable","name":"_payload","nameLocation":"929:8:157","nodeType":"VariableDeclaration","scope":74602,"src":"914:23:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74544,"name":"bytes","nodeType":"ElementaryTypeName","src":"914:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74547,"mutability":"mutable","name":"_value","nameLocation":"947:6:157","nodeType":"VariableDeclaration","scope":74602,"src":"939:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74546,"name":"uint128","nodeType":"ElementaryTypeName","src":"939:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"913:41:157"},"returnParameters":{"id":74551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74602,"src":"981:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"980:9:157"},"scope":75105,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74645,"nodeType":"FunctionDefinition","src":"1344:356:157","nodes":[],"body":{"id":74644,"nodeType":"Block","src":"1441:259:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74612,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"1459:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1480:1:157","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":74614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1472:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74613,"name":"address","nodeType":"ElementaryTypeName","src":"1472:7:157","typeDescriptions":{}}},"id":74616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1472:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1459:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1484:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74611,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1451:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74620,"nodeType":"ExpressionStatement","src":"1451:57:157"},{"assignments":[74622],"declarations":[{"constant":false,"id":74622,"mutability":"mutable","name":"baseFee","nameLocation":"1527:7:157","nodeType":"VariableDeclaration","scope":74644,"src":"1519:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74621,"name":"uint128","nodeType":"ElementaryTypeName","src":"1519:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":74629,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74624,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"1545:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1545:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74623,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"1537:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":74626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":74627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1555:7:157","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":73707,"src":"1537:25:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":74628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:27:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1519:45:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":74633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74631,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"1597:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74632,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"1607:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1597:16:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74630,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75066,"src":"1574:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74635,"nodeType":"ExpressionStatement","src":"1574:40:157"},{"eventCall":{"arguments":[{"id":74637,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74604,"src":"1653:10:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74638,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"1665:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74640,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74606,"src":"1676:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74641,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"1686:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74636,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73228,"src":"1630:22:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:63:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74643,"nodeType":"EmitStatement","src":"1625:68:157"}]},"baseFunctions":[73312],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[],"name":"sendReply","nameLocation":"1353:9:157","parameters":{"id":74609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74604,"mutability":"mutable","name":"_repliedTo","nameLocation":"1371:10:157","nodeType":"VariableDeclaration","scope":74645,"src":"1363:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1363:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74606,"mutability":"mutable","name":"_payload","nameLocation":"1398:8:157","nodeType":"VariableDeclaration","scope":74645,"src":"1383:23:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74605,"name":"bytes","nodeType":"ElementaryTypeName","src":"1383:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74608,"mutability":"mutable","name":"_value","nameLocation":"1416:6:157","nodeType":"VariableDeclaration","scope":74645,"src":"1408:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74607,"name":"uint128","nodeType":"ElementaryTypeName","src":"1408:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1362:61:157"},"returnParameters":{"id":74610,"nodeType":"ParameterList","parameters":[],"src":"1441:0:157"},"scope":75105,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74667,"nodeType":"FunctionDefinition","src":"1706:184:157","nodes":[],"body":{"id":74666,"nodeType":"Block","src":"1755:135:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74651,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"1773:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1794:1:157","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":74653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1786:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74652,"name":"address","nodeType":"ElementaryTypeName","src":"1786:7:157","typeDescriptions":{}}},"id":74655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1786:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1798:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74650,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1765:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74659,"nodeType":"ExpressionStatement","src":"1765:57:157"},{"eventCall":{"arguments":[{"id":74661,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74647,"src":"1861:10:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":74662,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"1873:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1873:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74660,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73235,"src":"1838:22:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":74664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74665,"nodeType":"EmitStatement","src":"1833:50:157"}]},"baseFunctions":[73317],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"1715:10:157","parameters":{"id":74648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74647,"mutability":"mutable","name":"_claimedId","nameLocation":"1734:10:157","nodeType":"VariableDeclaration","scope":74667,"src":"1726:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1726:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1725:20:157"},"returnParameters":{"id":74649,"nodeType":"ParameterList","parameters":[],"src":"1755:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74691,"nodeType":"FunctionDefinition","src":"1896:235:157","nodes":[],"body":{"id":74690,"nodeType":"Block","src":"1961:170:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74673,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"1979:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2000:1:157","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":74675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1992:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74674,"name":"address","nodeType":"ElementaryTypeName","src":"1992:7:157","typeDescriptions":{}}},"id":74677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1992:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1979:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":74679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2004:23:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":74672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1971:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:57:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74681,"nodeType":"ExpressionStatement","src":"1971:57:157"},{"expression":{"arguments":[{"id":74683,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74669,"src":"2062:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74682,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75066,"src":"2039:22:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:30:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74685,"nodeType":"ExpressionStatement","src":"2039:30:157"},{"eventCall":{"arguments":[{"id":74687,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74669,"src":"2117:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74686,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73240,"src":"2085:31:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2085:39:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74689,"nodeType":"EmitStatement","src":"2080:44:157"}]},"baseFunctions":[73322],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[],"name":"executableBalanceTopUp","nameLocation":"1905:22:157","parameters":{"id":74670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74669,"mutability":"mutable","name":"_value","nameLocation":"1936:6:157","nodeType":"VariableDeclaration","scope":74691,"src":"1928:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74668,"name":"uint128","nodeType":"ElementaryTypeName","src":"1928:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1927:16:157"},"returnParameters":{"id":74671,"nodeType":"ParameterList","parameters":[],"src":"1961:0:157"},"scope":75105,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":74730,"nodeType":"FunctionDefinition","src":"2137:267:157","nodes":[],"body":{"id":74729,"nodeType":"Block","src":"2176:228:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74695,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"2194:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:157","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":74697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74696,"name":"address","nodeType":"ElementaryTypeName","src":"2207:7:157","typeDescriptions":{}}},"id":74699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2194:23:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973206e6f74207465726d696e61746564","id":74701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2219:27:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""},"value":"program is not terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""}],"id":74694,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2186:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:61:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74703,"nodeType":"ExpressionStatement","src":"2186:61:157"},{"assignments":[74705],"declarations":[{"constant":false,"id":74705,"mutability":"mutable","name":"balance","nameLocation":"2266:7:157","nodeType":"VariableDeclaration","scope":74729,"src":"2258:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74704,"name":"uint256","nodeType":"ElementaryTypeName","src":"2258:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74720,"initialValue":{"arguments":[{"arguments":[{"id":74717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2340:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}],"id":74716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2332:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74715,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:157","typeDescriptions":{}}},"id":74718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2332:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74708,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"2297:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74707,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"2289:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":74710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":74711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2307:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73607,"src":"2289:29:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":74712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:31:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74706,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"2276:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73774_$","typeString":"type(contract IWrappedVara)"}},"id":74713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"id":74714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2322:9:157","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43097,"src":"2276:55:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:70:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2258:88:157"},{"expression":{"arguments":[{"id":74722,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"2369:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74725,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74705,"src":"2388:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2380:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":74723,"name":"uint128","nodeType":"ElementaryTypeName","src":"2380:7:157","typeDescriptions":{}}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:16:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74721,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"2356:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:41:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74728,"nodeType":"ExpressionStatement","src":"2356:41:157"}]},"baseFunctions":[73325],"functionSelector":"60302d24","implemented":true,"kind":"function","modifiers":[],"name":"sendValueToInheritor","nameLocation":"2146:20:157","parameters":{"id":74692,"nodeType":"ParameterList","parameters":[],"src":"2166:2:157"},"returnParameters":{"id":74693,"nodeType":"ParameterList","parameters":[],"src":"2176:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74751,"nodeType":"FunctionDefinition","src":"2462:202:157","nodes":[],"body":{"id":74750,"nodeType":"Block","src":"2525:139:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":74739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74737,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"2539:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74738,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74732,"src":"2552:12:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2539:25:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74749,"nodeType":"IfStatement","src":"2535:123:157","trueBody":{"id":74748,"nodeType":"Block","src":"2566:92:157","statements":[{"expression":{"id":74742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74740,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"2580:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74741,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74732,"src":"2592:12:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2580:24:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74743,"nodeType":"ExpressionStatement","src":"2580:24:157"},{"eventCall":{"arguments":[{"id":74745,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"2637:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":74744,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73206,"src":"2624:12:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":74746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2624:23:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74747,"nodeType":"EmitStatement","src":"2619:28:157"}]}}]},"baseFunctions":[73330],"functionSelector":"8ea59e1d","implemented":true,"kind":"function","modifiers":[{"id":74735,"kind":"modifierInvocation","modifierName":{"id":74734,"name":"onlyRouter","nameLocations":["2514:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"2514:10:157"},"nodeType":"ModifierInvocation","src":"2514:10:157"}],"name":"updateState","nameLocation":"2471:11:157","parameters":{"id":74733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74732,"mutability":"mutable","name":"newStateHash","nameLocation":"2491:12:157","nodeType":"VariableDeclaration","scope":74751,"src":"2483:20:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2482:22:157"},"returnParameters":{"id":74736,"nodeType":"ParameterList","parameters":[],"src":"2525:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74766,"nodeType":"FunctionDefinition","src":"2756:134:157","nodes":[],"body":{"id":74765,"nodeType":"Block","src":"2818:72:157","nodes":[],"statements":[{"expression":{"id":74760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74758,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74524,"src":"2828:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74759,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74753,"src":"2840:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2828:22:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74761,"nodeType":"ExpressionStatement","src":"2828:22:157"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74762,"name":"sendValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74730,"src":"2861:20:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2861:22:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74764,"nodeType":"ExpressionStatement","src":"2861:22:157"}]},"baseFunctions":[73335],"functionSelector":"12b22256","implemented":true,"kind":"function","modifiers":[{"id":74756,"kind":"modifierInvocation","modifierName":{"id":74755,"name":"onlyRouter","nameLocations":["2807:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"2807:10:157"},"nodeType":"ModifierInvocation","src":"2807:10:157"}],"name":"setInheritor","nameLocation":"2765:12:157","parameters":{"id":74754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74753,"mutability":"mutable","name":"_inheritor","nameLocation":"2786:10:157","nodeType":"VariableDeclaration","scope":74766,"src":"2778:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74752,"name":"address","nodeType":"ElementaryTypeName","src":"2778:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2777:20:157"},"returnParameters":{"id":74757,"nodeType":"ParameterList","parameters":[],"src":"2818:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74821,"nodeType":"FunctionDefinition","src":"2896:754:157","nodes":[],"body":{"id":74820,"nodeType":"Block","src":"3009:641:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74779,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"3113:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3132:1:157","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":74781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74780,"name":"address","nodeType":"ElementaryTypeName","src":"3124:7:157","typeDescriptions":{}}},"id":74783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3124:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3113:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74812,"nodeType":"IfStatement","src":"3109:479:157","trueBody":{"id":74811,"nodeType":"Block","src":"3136:452:157","statements":[{"assignments":[74786],"declarations":[{"constant":false,"id":74786,"mutability":"mutable","name":"callData","nameLocation":"3163:8:157","nodeType":"VariableDeclaration","scope":74811,"src":"3150:21:157","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74785,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74797,"initialValue":{"arguments":[{"expression":{"expression":{"id":74789,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"3213:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3228:13:157","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":73408,"src":"3213:28:157","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$returns$__$","typeString":"function IMirrorDecoder.onMessageSent(bytes32,address,bytes calldata,uint128)"}},"id":74791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3242:8:157","memberName":"selector","nodeType":"MemberAccess","src":"3213:37:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":74792,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74768,"src":"3252:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74793,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74770,"src":"3256:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74794,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74772,"src":"3269:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74795,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74774,"src":"3278:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":74787,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3190:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3194:18:157","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3190:22:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":74796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3190:94:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3150:134:157"},{"assignments":[74799,null],"declarations":[{"constant":false,"id":74799,"mutability":"mutable","name":"success","nameLocation":"3398:7:157","nodeType":"VariableDeclaration","scope":74811,"src":"3393:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74798,"name":"bool","nodeType":"ElementaryTypeName","src":"3393:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":74806,"initialValue":{"arguments":[{"id":74804,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74786,"src":"3437:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74800,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"3410:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3418:4:157","memberName":"call","nodeType":"MemberAccess","src":"3410:12:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":74802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428:7:157","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"3410:26:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3410:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3392:54:157"},{"condition":{"id":74807,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"3465:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74810,"nodeType":"IfStatement","src":"3461:117:157","trueBody":{"id":74809,"nodeType":"Block","src":"3474:104:157","statements":[{"functionReturnParameters":74778,"id":74808,"nodeType":"Return","src":"3557:7:157"}]}}]}},{"eventCall":{"arguments":[{"id":74814,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74768,"src":"3611:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74815,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74770,"src":"3615:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74816,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74772,"src":"3628:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74774,"src":"3637:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74813,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73251,"src":"3603:7:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74819,"nodeType":"EmitStatement","src":"3598:45:157"}]},"baseFunctions":[73346],"functionSelector":"c2df6009","implemented":true,"kind":"function","modifiers":[{"id":74777,"kind":"modifierInvocation","modifierName":{"id":74776,"name":"onlyRouter","nameLocations":["2998:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"2998:10:157"},"nodeType":"ModifierInvocation","src":"2998:10:157"}],"name":"messageSent","nameLocation":"2905:11:157","parameters":{"id":74775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74768,"mutability":"mutable","name":"id","nameLocation":"2925:2:157","nodeType":"VariableDeclaration","scope":74821,"src":"2917:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2917:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74770,"mutability":"mutable","name":"destination","nameLocation":"2937:11:157","nodeType":"VariableDeclaration","scope":74821,"src":"2929:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74769,"name":"address","nodeType":"ElementaryTypeName","src":"2929:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74772,"mutability":"mutable","name":"payload","nameLocation":"2965:7:157","nodeType":"VariableDeclaration","scope":74821,"src":"2950:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74771,"name":"bytes","nodeType":"ElementaryTypeName","src":"2950:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74774,"mutability":"mutable","name":"value","nameLocation":"2982:5:157","nodeType":"VariableDeclaration","scope":74821,"src":"2974:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74773,"name":"uint128","nodeType":"ElementaryTypeName","src":"2974:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2916:72:157"},"returnParameters":{"id":74778,"nodeType":"ParameterList","parameters":[],"src":"3009:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74884,"nodeType":"FunctionDefinition","src":"3656:775:157","nodes":[],"body":{"id":74883,"nodeType":"Block","src":"3810:621:157","nodes":[],"statements":[{"expression":{"arguments":[{"id":74837,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74823,"src":"3833:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74827,"src":"3846:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74836,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"3820:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3820:32:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74840,"nodeType":"ExpressionStatement","src":"3820:32:157"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74841,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"3867:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3886:1:157","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":74843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3878:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74842,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:157","typeDescriptions":{}}},"id":74845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3878:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3867:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74875,"nodeType":"IfStatement","src":"3863:505:157","trueBody":{"id":74874,"nodeType":"Block","src":"3890:478:157","statements":[{"assignments":[74848],"declarations":[{"constant":false,"id":74848,"mutability":"mutable","name":"callData","nameLocation":"3917:8:157","nodeType":"VariableDeclaration","scope":74874,"src":"3904:21:157","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74847,"name":"bytes","nodeType":"ElementaryTypeName","src":"3904:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74860,"initialValue":{"arguments":[{"expression":{"expression":{"id":74851,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"3968:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3983:11:157","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":73421,"src":"3968:26:157","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function IMirrorDecoder.onReplySent(address,bytes calldata,uint128,bytes32,bytes4)"}},"id":74853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3995:8:157","memberName":"selector","nodeType":"MemberAccess","src":"3968:35:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":74854,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74823,"src":"4005:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74855,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74825,"src":"4018:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74827,"src":"4027:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":74857,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"4034:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74858,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74831,"src":"4043:9:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":74849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3928:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3932:18:157","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3928:22:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":74859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3928:138:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3904:162:157"},{"assignments":[74862,null],"declarations":[{"constant":false,"id":74862,"mutability":"mutable","name":"success","nameLocation":"4180:7:157","nodeType":"VariableDeclaration","scope":74874,"src":"4175:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74861,"name":"bool","nodeType":"ElementaryTypeName","src":"4175:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":74869,"initialValue":{"arguments":[{"id":74867,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"4219:8:157","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74863,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"4192:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4200:4:157","memberName":"call","nodeType":"MemberAccess","src":"4192:12:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":74865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4210:7:157","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"4192:26:157","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":74868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4192:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4174:54:157"},{"condition":{"id":74870,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74862,"src":"4247:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74873,"nodeType":"IfStatement","src":"4243:115:157","trueBody":{"id":74872,"nodeType":"Block","src":"4256:102:157","statements":[{"functionReturnParameters":74835,"id":74871,"nodeType":"Return","src":"4337:7:157"}]}}]}},{"eventCall":{"arguments":[{"id":74877,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74825,"src":"4389:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74827,"src":"4398:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":74879,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"4405:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74880,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74831,"src":"4414:9:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":74876,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73262,"src":"4383:5:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":74881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:41:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74882,"nodeType":"EmitStatement","src":"4378:46:157"}]},"baseFunctions":[73359],"functionSelector":"c78bde77","implemented":true,"kind":"function","modifiers":[{"id":74834,"kind":"modifierInvocation","modifierName":{"id":74833,"name":"onlyRouter","nameLocations":["3795:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"3795:10:157"},"nodeType":"ModifierInvocation","src":"3795:10:157"}],"name":"replySent","nameLocation":"3665:9:157","parameters":{"id":74832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74823,"mutability":"mutable","name":"destination","nameLocation":"3683:11:157","nodeType":"VariableDeclaration","scope":74884,"src":"3675:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74822,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74825,"mutability":"mutable","name":"payload","nameLocation":"3711:7:157","nodeType":"VariableDeclaration","scope":74884,"src":"3696:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74824,"name":"bytes","nodeType":"ElementaryTypeName","src":"3696:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74827,"mutability":"mutable","name":"value","nameLocation":"3728:5:157","nodeType":"VariableDeclaration","scope":74884,"src":"3720:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74826,"name":"uint128","nodeType":"ElementaryTypeName","src":"3720:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":74829,"mutability":"mutable","name":"replyTo","nameLocation":"3743:7:157","nodeType":"VariableDeclaration","scope":74884,"src":"3735:15:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74831,"mutability":"mutable","name":"replyCode","nameLocation":"3759:9:157","nodeType":"VariableDeclaration","scope":74884,"src":"3752:16:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":74830,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3752:6:157","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3674:95:157"},"returnParameters":{"id":74835,"nodeType":"ParameterList","parameters":[],"src":"3810:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74906,"nodeType":"FunctionDefinition","src":"4437:192:157","nodes":[],"body":{"id":74905,"nodeType":"Block","src":"4534:95:157","nodes":[],"statements":[{"expression":{"arguments":[{"id":74896,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74888,"src":"4557:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74890,"src":"4570:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74895,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"4544:12:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":74898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:32:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74899,"nodeType":"ExpressionStatement","src":"4544:32:157"},{"eventCall":{"arguments":[{"id":74901,"name":"claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"4605:9:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74890,"src":"4616:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74900,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73269,"src":"4592:12:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":74903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4592:30:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74904,"nodeType":"EmitStatement","src":"4587:35:157"}]},"baseFunctions":[73368],"functionSelector":"14503e51","implemented":true,"kind":"function","modifiers":[{"id":74893,"kind":"modifierInvocation","modifierName":{"id":74892,"name":"onlyRouter","nameLocations":["4523:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"4523:10:157"},"nodeType":"ModifierInvocation","src":"4523:10:157"}],"name":"valueClaimed","nameLocation":"4446:12:157","parameters":{"id":74891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74886,"mutability":"mutable","name":"claimedId","nameLocation":"4467:9:157","nodeType":"VariableDeclaration","scope":74906,"src":"4459:17:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4459:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74888,"mutability":"mutable","name":"destination","nameLocation":"4486:11:157","nodeType":"VariableDeclaration","scope":74906,"src":"4478:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74887,"name":"address","nodeType":"ElementaryTypeName","src":"4478:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74890,"mutability":"mutable","name":"value","nameLocation":"4507:5:157","nodeType":"VariableDeclaration","scope":74906,"src":"4499:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74889,"name":"uint128","nodeType":"ElementaryTypeName","src":"4499:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4458:55:157"},"returnParameters":{"id":74894,"nodeType":"ParameterList","parameters":[],"src":"4534:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74947,"nodeType":"FunctionDefinition","src":"4635:363:157","nodes":[],"body":{"id":74946,"nodeType":"Block","src":"4716:282:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74916,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74526,"src":"4734:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4743:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4734:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206265666f726520696e6974206d657373616765","id":74919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4746:51:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""},"value":"decoder could only be created before init message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""}],"id":74915,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4726:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4726:72:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74921,"nodeType":"ExpressionStatement","src":"4726:72:157"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74923,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"4816:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:1:157","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":74925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4827:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74924,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:157","typeDescriptions":{}}},"id":74927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4827:10:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4816:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e6365","id":74929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4839:36:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""},"value":"decoder could only be created once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""}],"id":74922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4808:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:68:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74931,"nodeType":"ExpressionStatement","src":"4808:68:157"},{"expression":{"id":74938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74932,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"4887:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74935,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74908,"src":"4923:14:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74936,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74910,"src":"4939:4:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":74933,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"4897:6:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":74934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4904:18:157","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"4897:25:157","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4897:47:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4887:57:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74939,"nodeType":"ExpressionStatement","src":"4887:57:157"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":74941,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"4970:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74940,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73422,"src":"4955:14:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$73422_$","typeString":"type(contract IMirrorDecoder)"}},"id":74942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:23:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$73422","typeString":"contract IMirrorDecoder"}},"id":74943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4979:10:157","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"4955:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":74944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74945,"nodeType":"ExpressionStatement","src":"4955:36:157"}]},"baseFunctions":[73375],"functionSelector":"5b1b84f7","implemented":true,"kind":"function","modifiers":[{"id":74913,"kind":"modifierInvocation","modifierName":{"id":74912,"name":"onlyRouter","nameLocations":["4705:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"4705:10:157"},"nodeType":"ModifierInvocation","src":"4705:10:157"}],"name":"createDecoder","nameLocation":"4644:13:157","parameters":{"id":74911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74908,"mutability":"mutable","name":"implementation","nameLocation":"4666:14:157","nodeType":"VariableDeclaration","scope":74947,"src":"4658:22:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74907,"name":"address","nodeType":"ElementaryTypeName","src":"4658:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74910,"mutability":"mutable","name":"salt","nameLocation":"4690:4:157","nodeType":"VariableDeclaration","scope":74947,"src":"4682:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4682:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4657:38:157"},"returnParameters":{"id":74914,"nodeType":"ParameterList","parameters":[],"src":"4716:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74997,"nodeType":"FunctionDefinition","src":"5004:566:157","nodes":[],"body":{"id":74996,"nodeType":"Block","src":"5147:423:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74961,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74526,"src":"5165:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5174:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5165:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e6974206d657373616765206d7573742062652063726561746564206265666f726520616e79206f7468657273","id":74964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:48:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""},"value":"init message must be created before any others"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""}],"id":74960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5157:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":74965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5157:69:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74966,"nodeType":"ExpressionStatement","src":"5157:69:157"},{"assignments":[74968],"declarations":[{"constant":false,"id":74968,"mutability":"mutable","name":"initNonce","nameLocation":"5335:9:157","nodeType":"VariableDeclaration","scope":74996,"src":"5327:17:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74967,"name":"uint256","nodeType":"ElementaryTypeName","src":"5327:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74971,"initialValue":{"id":74970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5347:7:157","subExpression":{"id":74969,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74526,"src":"5347:5:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5327:27:157"},{"assignments":[74973],"declarations":[{"constant":false,"id":74973,"mutability":"mutable","name":"id","nameLocation":"5372:2:157","nodeType":"VariableDeclaration","scope":74996,"src":"5364:10:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5364:7:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":74984,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":74979,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5412:4:157","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$75105","typeString":"contract Mirror"}],"id":74978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5404:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74977,"name":"address","nodeType":"ElementaryTypeName","src":"5404:7:157","typeDescriptions":{}}},"id":74980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:13:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74981,"name":"initNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74968,"src":"5419:9:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5387:3:157","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5391:12:157","memberName":"encodePacked","nodeType":"MemberAccess","src":"5387:16:157","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5387:42:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74974,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5377:9:157","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5377:53:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5364:66:157"},{"eventCall":{"arguments":[{"id":74986,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"5478:17:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74985,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73240,"src":"5446:31:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":74987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5446:50:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74988,"nodeType":"EmitStatement","src":"5441:55:157"},{"eventCall":{"arguments":[{"id":74990,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"5536:2:157","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":74991,"name":"source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74949,"src":"5540:6:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74992,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74951,"src":"5548:7:157","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":74993,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74953,"src":"5557:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":74989,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"5511:24:157","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":74994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5511:52:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74995,"nodeType":"EmitStatement","src":"5506:57:157"}]},"baseFunctions":[73386],"functionSelector":"de1dd2e0","implemented":true,"kind":"function","modifiers":[{"id":74958,"kind":"modifierInvocation","modifierName":{"id":74957,"name":"onlyRouter","nameLocations":["5132:10:157"],"nodeType":"IdentifierPath","referencedDeclaration":75010,"src":"5132:10:157"},"nodeType":"ModifierInvocation","src":"5132:10:157"}],"name":"initMessage","nameLocation":"5013:11:157","parameters":{"id":74956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74949,"mutability":"mutable","name":"source","nameLocation":"5033:6:157","nodeType":"VariableDeclaration","scope":74997,"src":"5025:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74948,"name":"address","nodeType":"ElementaryTypeName","src":"5025:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74951,"mutability":"mutable","name":"payload","nameLocation":"5056:7:157","nodeType":"VariableDeclaration","scope":74997,"src":"5041:22:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":74950,"name":"bytes","nodeType":"ElementaryTypeName","src":"5041:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74953,"mutability":"mutable","name":"value","nameLocation":"5073:5:157","nodeType":"VariableDeclaration","scope":74997,"src":"5065:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74952,"name":"uint128","nodeType":"ElementaryTypeName","src":"5065:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":74955,"mutability":"mutable","name":"executableBalance","nameLocation":"5088:17:157","nodeType":"VariableDeclaration","scope":74997,"src":"5080:25:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":74954,"name":"uint128","nodeType":"ElementaryTypeName","src":"5080:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5024:82:157"},"returnParameters":{"id":74959,"nodeType":"ParameterList","parameters":[],"src":"5147:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75010,"nodeType":"ModifierDefinition","src":"5576:131:157","nodes":[],"body":{"id":75009,"nodeType":"Block","src":"5598:109:157","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75000,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5616:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5620:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5616:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75002,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"5630:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5630:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5616:22:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6520666f72206f7065726174696f6e","id":75005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5640:48:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""},"value":"only router contract is eligible for operation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""}],"id":74999,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5608:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:81:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75007,"nodeType":"ExpressionStatement","src":"5608:81:157"},{"id":75008,"nodeType":"PlaceholderStatement","src":"5699:1:157"}]},"name":"onlyRouter","nameLocation":"5585:10:157","parameters":{"id":74998,"nodeType":"ParameterList","parameters":[],"src":"5595:2:157"},"virtual":false,"visibility":"internal"},{"id":75029,"nodeType":"FunctionDefinition","src":"5747:182:157","nodes":[],"body":{"id":75028,"nodeType":"Block","src":"5797:132:157","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75015,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5811:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5811:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75017,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74528,"src":"5825:7:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5811:21:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75026,"nodeType":"Block","src":"5881:42:157","statements":[{"expression":{"expression":{"id":75023,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5902:3:157","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5906:6:157","memberName":"sender","nodeType":"MemberAccess","src":"5902:10:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75014,"id":75025,"nodeType":"Return","src":"5895:17:157"}]},"id":75027,"nodeType":"IfStatement","src":"5807:116:157","trueBody":{"id":75022,"nodeType":"Block","src":"5834:41:157","statements":[{"expression":{"expression":{"id":75019,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"5855:2:157","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5858:6:157","memberName":"origin","nodeType":"MemberAccess","src":"5855:9:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75014,"id":75021,"nodeType":"Return","src":"5848:16:157"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_source","nameLocation":"5756:7:157","parameters":{"id":75011,"nodeType":"ParameterList","parameters":[],"src":"5763:2:157"},"returnParameters":{"id":75014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75029,"src":"5788:7:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75012,"name":"address","nodeType":"ElementaryTypeName","src":"5788:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5787:9:157"},"scope":75105,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75066,"nodeType":"FunctionDefinition","src":"5935:332:157","nodes":[],"body":{"id":75065,"nodeType":"Block","src":"5991:276:157","nodes":[],"statements":[{"assignments":[75035],"declarations":[{"constant":false,"id":75035,"mutability":"mutable","name":"routerAddress","nameLocation":"6009:13:157","nodeType":"VariableDeclaration","scope":75065,"src":"6001:21:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75034,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75036,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"6025:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6001:32:157"},{"assignments":[75041],"declarations":[{"constant":false,"id":75041,"mutability":"mutable","name":"wrappedVara","nameLocation":"6057:11:157","nodeType":"VariableDeclaration","scope":75065,"src":"6044:24:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"},"typeName":{"id":75040,"nodeType":"UserDefinedTypeName","pathNode":{"id":75039,"name":"IWrappedVara","nameLocations":["6044:12:157"],"nodeType":"IdentifierPath","referencedDeclaration":73774,"src":"6044:12:157"},"referencedDeclaration":73774,"src":"6044:12:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":75049,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75044,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"6092:13:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75043,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"6084:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6084:22:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":75046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6107:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73607,"src":"6084:34:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6084:36:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75042,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"6071:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73774_$","typeString":"type(contract IWrappedVara)"}},"id":75048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6071:50:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"6044:77:157"},{"assignments":[75051],"declarations":[{"constant":false,"id":75051,"mutability":"mutable","name":"success","nameLocation":"6137:7:157","nodeType":"VariableDeclaration","scope":75065,"src":"6132:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75050,"name":"bool","nodeType":"ElementaryTypeName","src":"6132:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75059,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75054,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"6172:7:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:9:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75056,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"6183:13:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75057,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75031,"src":"6198:6:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75052,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75041,"src":"6147:11:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6159:12:157","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"6147:24:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":75058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:58:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6132:73:157"},{"expression":{"arguments":[{"id":75061,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75051,"src":"6224:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":75062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6233:26:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":75060,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6216:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6216:44:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75064,"nodeType":"ExpressionStatement","src":"6216:44:157"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValueToRouter","nameLocation":"5944:22:157","parameters":{"id":75032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75031,"mutability":"mutable","name":"_value","nameLocation":"5975:6:157","nodeType":"VariableDeclaration","scope":75066,"src":"5967:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75030,"name":"uint128","nodeType":"ElementaryTypeName","src":"5967:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5966:16:157"},"returnParameters":{"id":75033,"nodeType":"ParameterList","parameters":[],"src":"5991:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":75104,"nodeType":"FunctionDefinition","src":"6273:316:157","nodes":[],"body":{"id":75103,"nodeType":"Block","src":"6339:250:157","nodes":[],"statements":[{"assignments":[75075],"declarations":[{"constant":false,"id":75075,"mutability":"mutable","name":"wrappedVara","nameLocation":"6362:11:157","nodeType":"VariableDeclaration","scope":75103,"src":"6349:24:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"},"typeName":{"id":75074,"nodeType":"UserDefinedTypeName","pathNode":{"id":75073,"name":"IWrappedVara","nameLocations":["6349:12:157"],"nodeType":"IdentifierPath","referencedDeclaration":73774,"src":"6349:12:157"},"referencedDeclaration":73774,"src":"6349:12:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":75084,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75078,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74543,"src":"6397:6:157","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:8:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75077,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"6389:7:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":75080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:17:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":75081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6407:11:157","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73607,"src":"6389:29:157","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:31:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75076,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"6376:12:157","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73774_$","typeString":"type(contract IWrappedVara)"}},"id":75083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6376:45:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"6349:72:157"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75070,"src":"6436:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6445:1:157","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6436:10:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75102,"nodeType":"IfStatement","src":"6432:151:157","trueBody":{"id":75101,"nodeType":"Block","src":"6448:135:157","statements":[{"assignments":[75089],"declarations":[{"constant":false,"id":75089,"mutability":"mutable","name":"success","nameLocation":"6467:7:157","nodeType":"VariableDeclaration","scope":75101,"src":"6462:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75088,"name":"bool","nodeType":"ElementaryTypeName","src":"6462:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75095,"initialValue":{"arguments":[{"id":75092,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"6498:11:157","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75070,"src":"6511:5:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75090,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"6477:11:157","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6489:8:157","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"6477:20:157","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6477:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6462:55:157"},{"expression":{"arguments":[{"id":75097,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75089,"src":"6540:7:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f2073656e64205756617261","id":75098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6549:22:157","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""},"value":"failed to send WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""}],"id":75096,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6532:7:157","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6532:40:157","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75100,"nodeType":"ExpressionStatement","src":"6532:40:157"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendValueTo","nameLocation":"6282:12:157","parameters":{"id":75071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75068,"mutability":"mutable","name":"destination","nameLocation":"6303:11:157","nodeType":"VariableDeclaration","scope":75104,"src":"6295:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75067,"name":"address","nodeType":"ElementaryTypeName","src":"6295:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75070,"mutability":"mutable","name":"value","nameLocation":"6324:5:157","nodeType":"VariableDeclaration","scope":75104,"src":"6316:13:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75069,"name":"uint128","nodeType":"ElementaryTypeName","src":"6316:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6294:36:157"},"returnParameters":{"id":75072,"nodeType":"ParameterList","parameters":[],"src":"6339:0:157"},"scope":75105,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":74519,"name":"IMirror","nameLocations":["422:7:157"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"422:7:157"},"id":74520,"nodeType":"InheritanceSpecifier","src":"422:7:157"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75105,73387],"name":"Mirror","nameLocation":"412:6:157","scope":75106,"usedErrors":[43912,43918],"usedEvents":[73206,73217,73228,73235,73240,73251,73262,73269]}],"license":"UNLICENSED"},"id":157} \ No newline at end of file diff --git a/ethexe/ethereum/MirrorProxy.json b/ethexe/ethereum/MirrorProxy.json index 44744699249..9acb9553940 100644 --- a/ethexe/ethereum/MirrorProxy.json +++ b/ethexe/ethereum/MirrorProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606b57601f61021038819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b5760805260405161018c908161008482396080518181816023015260e10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea264697066735822122087146b6bba8b411403e081d832d2834826243a4a3c173eb5e6da0c0d40a074e864736f6c634300081a0033","sourceMap":"259:282:158:-:0;;;;;;;;;;;;;-1:-1:-1;;259:282:158;;;;-1:-1:-1;;;;;259:282:158;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:158;;;;;;386:16;;259:282;;;;;;;;386:16;259:282;;;;;;;;;;;;-1:-1:-1;259:282:158;;;;;;-1:-1:-1;259:282:158;;;;;-1:-1:-1;259:282:158","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea264697066735822122087146b6bba8b411403e081d832d2834826243a4a3c173eb5e6da0c0d40a074e864736f6c634300081a0033","sourceMap":"259:282:158:-:0;;;;;;;;;-1:-1:-1;;;;259:282:158;508:24;;;;;259:282;;516:6;-1:-1:-1;;;;;259:282:158;508:24;;;;;;-1:-1:-1;508:24:158;;2381:17:47;508:24:158;;;;;;;;;259:282;;;;;;;;;;;;;;;;;;508:24;259:282;;;;508:24;;:::i;:::-;2381:17:47;:::i;259:282:158:-;;;;-1:-1:-1;259:282:158;;;;;-1:-1:-1;259:282:158;508:24;;;;;;259:282;;;-1:-1:-1;259:282:158;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:282:158;;;;309:31;-1:-1:-1;;;;;259:282:158;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:158;;;;;;;:::o;949:895:47:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"75112":[{"start":35,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"router()":"f887ea40"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MirrorProxy.sol\":\"MirrorProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99\",\"dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8\",\"dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MirrorProxy.sol":"MirrorProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235","urls":["bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99","dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30","urls":["bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8","dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/MirrorProxy.sol","id":75137,"exportedSymbols":{"IMirrorProxy":[73430],"IRouter":[73756],"MirrorProxy":[75136],"Proxy":[42208]},"nodeType":"SourceUnit","src":"39:503:158","nodes":[{"id":75100,"nodeType":"PragmaDirective","src":"39:24:158","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75102,"nodeType":"ImportDirective","src":"65:62:158","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":75137,"sourceUnit":42209,"symbolAliases":[{"foreign":{"id":75101,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42208,"src":"73:5:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75104,"nodeType":"ImportDirective","src":"128:48:158","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":75137,"sourceUnit":73431,"symbolAliases":[{"foreign":{"id":75103,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"136:12:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75106,"nodeType":"ImportDirective","src":"177:38:158","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":75137,"sourceUnit":73757,"symbolAliases":[{"foreign":{"id":75105,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"185:7:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75136,"nodeType":"ContractDefinition","src":"259:282:158","nodes":[{"id":75112,"nodeType":"VariableDeclaration","src":"309:31:158","nodes":[],"baseFunctions":[73429],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:158","scope":75136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75111,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":75122,"nodeType":"FunctionDefinition","src":"347:62:158","nodes":[],"body":{"id":75121,"nodeType":"Block","src":"376:33:158","nodes":[],"statements":[{"expression":{"id":75119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75117,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75112,"src":"386:6:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75118,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75114,"src":"395:7:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"386:16:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75120,"nodeType":"ExpressionStatement","src":"386:16:158"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75114,"mutability":"mutable","name":"_router","nameLocation":"367:7:158","nodeType":"VariableDeclaration","scope":75122,"src":"359:15:158","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75113,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:17:158"},"returnParameters":{"id":75116,"nodeType":"ParameterList","parameters":[],"src":"376:0:158"},"scope":75136,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75135,"nodeType":"FunctionDefinition","src":"415:124:158","nodes":[],"body":{"id":75134,"nodeType":"Block","src":"491:48:158","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75129,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75112,"src":"516:6:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75128,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"508:7:158","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73756_$","typeString":"type(contract IRouter)"}},"id":75130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:15:158","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73756","typeString":"contract IRouter"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"524:6:158","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73610,"src":"508:22:158","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:24:158","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75127,"id":75133,"nodeType":"Return","src":"501:31:158"}]},"baseFunctions":[42189],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"424:15:158","overrides":{"id":75124,"nodeType":"OverrideSpecifier","overrides":[],"src":"464:8:158"},"parameters":{"id":75123,"nodeType":"ParameterList","parameters":[],"src":"439:2:158"},"returnParameters":{"id":75127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75135,"src":"482:7:158","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75125,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:9:158"},"scope":75136,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75107,"name":"IMirrorProxy","nameLocations":["283:12:158"],"nodeType":"IdentifierPath","referencedDeclaration":73430,"src":"283:12:158"},"id":75108,"nodeType":"InheritanceSpecifier","src":"283:12:158"},{"baseName":{"id":75109,"name":"Proxy","nameLocations":["297:5:158"],"nodeType":"IdentifierPath","referencedDeclaration":42208,"src":"297:5:158"},"id":75110,"nodeType":"InheritanceSpecifier","src":"297:5:158"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75136,42208,73430],"name":"MirrorProxy","nameLocation":"268:11:158","scope":75137,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":158} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606b57601f61021038819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b5760805260405161018c908161008482396080518181816023015260e10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212205992e45a1a3aab2e01486835c37b23f9ba510507f648357a87e689d38e5b10ed64736f6c634300081a0033","sourceMap":"259:282:158:-:0;;;;;;;;;;;;;-1:-1:-1;;259:282:158;;;;-1:-1:-1;;;;;259:282:158;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:158;;;;;;386:16;;259:282;;;;;;;;386:16;259:282;;;;;;;;;;;;-1:-1:-1;259:282:158;;;;;;-1:-1:-1;259:282:158;;;;;-1:-1:-1;259:282:158","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212205992e45a1a3aab2e01486835c37b23f9ba510507f648357a87e689d38e5b10ed64736f6c634300081a0033","sourceMap":"259:282:158:-:0;;;;;;;;;-1:-1:-1;;;;259:282:158;508:24;;;;;259:282;;516:6;-1:-1:-1;;;;;259:282:158;508:24;;;;;;-1:-1:-1;508:24:158;;2381:17:47;508:24:158;;;;;;;;;259:282;;;;;;;;;;;;;;;;;;508:24;259:282;;;;508:24;;:::i;:::-;2381:17:47;:::i;259:282:158:-;;;;-1:-1:-1;259:282:158;;;;;-1:-1:-1;259:282:158;508:24;;;;;;259:282;;;-1:-1:-1;259:282:158;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:282:158;;;;309:31;-1:-1:-1;;;;;259:282:158;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:158;;;;;;;:::o;949:895:47:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"75119":[{"start":35,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"router()":"f887ea40"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MirrorProxy.sol\":\"MirrorProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f\",\"dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8\",\"dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MirrorProxy.sol":"MirrorProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f","urls":["bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f","dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30","urls":["bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8","dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/MirrorProxy.sol","id":75144,"exportedSymbols":{"IMirrorProxy":[73430],"IRouter":[73763],"MirrorProxy":[75143],"Proxy":[42208]},"nodeType":"SourceUnit","src":"39:503:158","nodes":[{"id":75107,"nodeType":"PragmaDirective","src":"39:24:158","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75109,"nodeType":"ImportDirective","src":"65:62:158","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":75144,"sourceUnit":42209,"symbolAliases":[{"foreign":{"id":75108,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42208,"src":"73:5:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75111,"nodeType":"ImportDirective","src":"128:48:158","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":75144,"sourceUnit":73431,"symbolAliases":[{"foreign":{"id":75110,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73430,"src":"136:12:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75113,"nodeType":"ImportDirective","src":"177:38:158","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":75144,"sourceUnit":73764,"symbolAliases":[{"foreign":{"id":75112,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"185:7:158","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75143,"nodeType":"ContractDefinition","src":"259:282:158","nodes":[{"id":75119,"nodeType":"VariableDeclaration","src":"309:31:158","nodes":[],"baseFunctions":[73429],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:158","scope":75143,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75118,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":75129,"nodeType":"FunctionDefinition","src":"347:62:158","nodes":[],"body":{"id":75128,"nodeType":"Block","src":"376:33:158","nodes":[],"statements":[{"expression":{"id":75126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75124,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"386:6:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75125,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"395:7:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"386:16:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75127,"nodeType":"ExpressionStatement","src":"386:16:158"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75121,"mutability":"mutable","name":"_router","nameLocation":"367:7:158","nodeType":"VariableDeclaration","scope":75129,"src":"359:15:158","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75120,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:17:158"},"returnParameters":{"id":75123,"nodeType":"ParameterList","parameters":[],"src":"376:0:158"},"scope":75143,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75142,"nodeType":"FunctionDefinition","src":"415:124:158","nodes":[],"body":{"id":75141,"nodeType":"Block","src":"491:48:158","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75136,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"516:6:158","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75135,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"508:7:158","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$73763_$","typeString":"type(contract IRouter)"}},"id":75137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:15:158","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$73763","typeString":"contract IRouter"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"524:6:158","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73617,"src":"508:22:158","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:24:158","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75134,"id":75140,"nodeType":"Return","src":"501:31:158"}]},"baseFunctions":[42189],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"424:15:158","overrides":{"id":75131,"nodeType":"OverrideSpecifier","overrides":[],"src":"464:8:158"},"parameters":{"id":75130,"nodeType":"ParameterList","parameters":[],"src":"439:2:158"},"returnParameters":{"id":75134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75142,"src":"482:7:158","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75132,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:158","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:9:158"},"scope":75143,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75114,"name":"IMirrorProxy","nameLocations":["283:12:158"],"nodeType":"IdentifierPath","referencedDeclaration":73430,"src":"283:12:158"},"id":75115,"nodeType":"InheritanceSpecifier","src":"283:12:158"},{"baseName":{"id":75116,"name":"Proxy","nameLocations":["297:5:158"],"nodeType":"IdentifierPath","referencedDeclaration":42208,"src":"297:5:158"},"id":75117,"nodeType":"InheritanceSpecifier","src":"297:5:158"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75143,42208,73430],"name":"MirrorProxy","nameLocation":"268:11:158","scope":75144,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":158} \ No newline at end of file diff --git a/ethexe/ethereum/Router.json b/ethexe/ethereum/Router.json index 9b7f4b8da7a..47bb0ecd782 100644 --- a/ethexe/ethereum/Router.json +++ b/ethexe/ethereum/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct IRouter.OutgoingMessage[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161292390816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60a0806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c955750806301b1d156146113425780630834fecc1461130b5780631c149d8a146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cef565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611dac565b905f805160206128ce8339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f805160206128ce8339815191525561028c9186610423575b5061027f612746565b610287612746565b611f88565b604094855161029b8782611d05565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf612207565b5190205f19810190811161040f5786519060208201908152602082526102f58883611d05565b60ff19915190201690815f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b890612538565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f805160206128ce83398151915254165f805160206128ce833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f805160206128ce833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cef565b610287612207565b005b34610479575f36600319011261047957602060055f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f4a565b604051908152f35b34610479575f36600319011261047957602060085f805160206128ae833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611cbf565b90925f805160206128ae83398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f2f565b60405160208101918d8352151560f81b6040820152602181526105f5604182611d05565b51902090611e10565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f2f565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f3c565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a1935060208151910120612082565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611cbf565b61077c612207565b5f805160206128ae8339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611dac565b612538565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f805160206128ae83398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f805160206128ae8339815191525401611e9c565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f805160206128ae83398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d74091602091610977612207565b5f805160206128ae83398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128ae83398151915254604051908152f35b3461047957602036600319011261047957610a3e611cef565b600b5f805160206128ae83398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cef565b60075f805160206128ae83398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f8051602061288e833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f805160206128ae83398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d7f565b90606435916001600160801b038316830361047957610b758360243560043561225a565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e5f565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611d05565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c36612207565b5f805160206128ae83398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f805160206128ae83398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb2612207565b5f8051602061288e83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611eed565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d44612207565b5f805160206128ce8339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f805160206128ce833981519152555f805160206128ae833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e9c565b906040918251610dd78482611d05565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b612207565b5190205f19810190811161040f578351906020820190815260208252610e318583611d05565b60ff19915190201694855f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef390612538565b60ff60401b195f805160206128ce83398151915254165f805160206128ce833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cef565b6044356024356064356001600160401b03811161047957610f6d903690600401611d7f565b90608435946001600160801b038616860361047957610f8d86868661225a565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611d05565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e5f565b5f61102a91611d05565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d3a565b611079612207565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611d05565b9051902060ff19165f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f805160206128ae83398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cef565b61113b612207565b5f805160206128ae8339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128ae8339815191525454604051908152f35b34610479576040366003190112610479576024356004358115801590611301575b156112bc5760095f805160206128ae833981519152540190805f528160205260ff60405f205416600381101561071f5761125e577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f4915156111e4565b34610479575f366003190112610479576020610d1b6001600160801b0360065f805160206128ae83398151915254015460401c1690565b34610479576040366003190112610479576004356001600160401b03811161047957611372903690600401611cbf565b6024356001600160401b03811161047957611391903690600401611cbf565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009391935c611c865782849160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9360605b83861015611c4f578560051b82013595609e19833603018712156104795760045f805160206128ae83398151915254019485549560408986010135809703611c0b5761143760608a87010135612679565b15611bba5788859697929895013590556060945f975b61145d828b016080810190611ff9565b9050891015611b0c576114808961147a848d016080810190611ff9565b9061202e565b975f805160206128ae833981519152546114998a6126bc565b6001600160a01b03165f908152600b8201602052604090205415611aaf57600301546001600160801b03906020906001600160a01b031660448c5f6114e960606114e2846126bc565b93016126d0565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611a83575b506001600160a01b036115348a6126bc565b166080525f9160605b61154a60808c018c6126fc565b90508410156116b15761156060808c018c6126fc565b85929192101561169d5761160a602091826115818160608a028701016126bc565b611592604060608b028801016126d0565b604051908382019260608c0289013584526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526115d8606482611d05565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611d05565b9361161c6020606083028401016126bc565b61162d6040606084028501016126d0565b6080513b15610479576001600160801b0391604051946314503e5160e01b8652606085020135600486015260018060a01b031660248501521660448301525f82606481836080515af1918215610bda5760019261168d575b50019261153d565b5f61169791611d05565b8e611685565b634e487b7160e01b5f52603260045260245ffd5b979091969b93949592509997996060915f925b6116d160a08d018d611ff9565b905084101561191657836116e860a08e018e611ff9565b6116f2929161202e565b936020850194611701866126bc565b9560408201936117118584612050565b909890611720606086016126d0565b9960a086019a61172f8c612731565b8360405194859460208601978b3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080880135606483015263ffffffff60e01b1660848201520360540160148101825260340161179c9082611d05565b5190206117a891611e10565b96608083013561185857506117bf6117c6916126bc565b9382612050565b9390916117d5606082016126d0565b6080513b15610479576001600160801b036118215f95604051988996879663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e3f565b911660648301520381836080515af1918215610bda57600192611848575b505b01926116c4565b5f61185291611d05565b8f61183f565b939061186661186d916126bc565b9183612050565b91909461188561187f606086016126d0565b91612731565b6080513b156104795760805f956001600160801b036118cd6040519a8b98899863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e3f565b941660448601520135606484015263ffffffff60e01b1660848301520381836080515af1918215610bda57600192611906575b50611841565b5f61191091611d05565b8f611900565b93969a90959892509b96939b9a909a604081019060018060a01b0361193a836126bc565b16611a2a575b6020810135906080513b156104795760405195638ea59e1d60e01b87528260048801525f87602481836080515af1958615610bda57600197611a0e97611a1a575b506119a06060611999611993866126bc565b976126bc565b94016126d0565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611d05565b9601979490969161144d565b5f611a2491611d05565b5f611981565b611a33826126bc565b6080513b156104795760405190630959112b60e11b825260018060a01b031660048201525f81602481836080515af18015610bda57611a73575b50611940565b5f611a7d91611d05565b8e611a6d565b611aa39060203d8111611aa8575b611a9b8183611d05565b8101906126e4565b611522565b503d611a91565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b97509594919792907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051868a01358152a1602084880101359065ffffffffffff82168203610479576001946060856020611bae975191012091604051936020850195828d0135875265ffffffffffff60d01b9060d01b16604086015260468501528a01013560668301526086820152608681526105f560a682611d05565b950194939290936113e6565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8285611c619260208151910120612082565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479575f36600319011261047957602090600a5f805160206128ae8339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611d2657604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611d265760405191611d63601f8201601f191660200184611d05565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611d26578360051b916020604051611dd382860182611d05565b809681520192810191821161047957915b818310611df057505050565b82356001600160a01b038116810361047957815260209283019201611de4565b602080611e3d928195946040519682889351918291018585015e8201908382015203018085520183611d05565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e8f6001600160801b0393606095859360018060a01b03168852608060208901526080880191611e3f565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ecb575050611e3d92500383611d05565b84546001600160a01b0316835260019485019487945060209093019201611eb6565b5f805160206128ae83398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f805160206128ae83398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fe6575f8051602061288e83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561169d5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f805160206128ae833981519152549061209b611f4a565b926040519060208201908152602082526120b6604083611d05565b6120f2603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611d05565b5190205f9260070191835b868510156121fb5761213361212a61212461211d8860051b860186612050565b3691611d3a565b85612771565b909291926127ab565b6001600160a01b03165f9081526020859052604090205460ff16156121c05761215b90611f3c565b9385851461216c57600101936120fd565b505050509091505b1061217b57565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b94955050505050612174565b5f8051602061288e833981519152546001600160a01b0316330361222757565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f805160206128ae8339815191525491815f526009830160205260ff60405f205416600381101561071f576002036124dc57612297611eed565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610bda575f9061249f575b60ff915016604d811161040f5760646123036020936122fe6001600160801b038095600a0a16809c61223a565b61223a565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610bda575f91612480575b501561243b576e5af43d82803e903d91602b57fd5bf36002840154916040516020810191858352604082015260408152612384606082611d05565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b03831690811561242c577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f20550161241f8154611f3c565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612499915060203d602011611aa857611a9b8183611d05565b5f612349565b506020813d6020116124d4575b816124b960209383611d05565b81010312610479575160ff811681036104795760ff906122d1565b3d91506124ac565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206128ae833981519152549060088201908154612628579091600701905f5b815181101561259a57600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff191660019081179091550161255b565b5080519291506001600160401b038311611d2657680100000000000000008311611d26578154838355808410612602575b50602001905f5260205f205f5b8381106125e55750505050565b82516001600160a01b0316818301556020909201916001016125d8565b825f528360205f2091820191015b81811061261d57506125cb565b5f8155600101612610565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b612692575b505f9150565b80408381036126a357506001925050565b156126b757801561040f575f190180612687565b61268c565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f805160206128ce8339815191525460401c161561276257565b631afcd79f60e31b5f5260045ffd5b81519190604183036127a15761279a9250602082015190606060408401519301515f1a9061280b565b9192909190565b50505f9160029190565b600481101561071f57806127bd575050565b600181036127d45763f645eedf60e01b5f5260045ffd5b600281036127ef575063fce698f760e01b5f5260045260245ffd5b6003146127f95750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612882579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b0381161561287857905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200e182e44d57d86c39daa598c5a0be02cc7be1594c3571ad47bdb9e0c7ba8bc6a64736f6c634300081a0033","sourceMap":"879:17943:159:-:0;;;;;;;8837:64:26;879:17943:159;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;879:17943:159;;7985:34:26;7981:146;;-1:-1:-1;879:17943:159;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;879:17943:159;-1:-1:-1;;;;;879:17943:159;;;8837:64:26;879:17943:159;;;8087:29:26;;879:17943:159;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;879:17943:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60a0806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c955750806301b1d156146113425780630834fecc1461130b5780631c149d8a146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cef565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611dac565b905f805160206128ce8339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f805160206128ce8339815191525561028c9186610423575b5061027f612746565b610287612746565b611f88565b604094855161029b8782611d05565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf612207565b5190205f19810190811161040f5786519060208201908152602082526102f58883611d05565b60ff19915190201690815f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b890612538565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f805160206128ce83398151915254165f805160206128ce833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f805160206128ce833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cef565b610287612207565b005b34610479575f36600319011261047957602060055f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f4a565b604051908152f35b34610479575f36600319011261047957602060085f805160206128ae833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611cbf565b90925f805160206128ae83398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f2f565b60405160208101918d8352151560f81b6040820152602181526105f5604182611d05565b51902090611e10565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f2f565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f3c565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a1935060208151910120612082565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611cbf565b61077c612207565b5f805160206128ae8339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611dac565b612538565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f805160206128ae83398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f805160206128ae8339815191525401611e9c565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f805160206128ae83398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d74091602091610977612207565b5f805160206128ae83398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128ae83398151915254604051908152f35b3461047957602036600319011261047957610a3e611cef565b600b5f805160206128ae83398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cef565b60075f805160206128ae83398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f8051602061288e833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f805160206128ae83398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d7f565b90606435916001600160801b038316830361047957610b758360243560043561225a565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e5f565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611d05565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c36612207565b5f805160206128ae83398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f805160206128ae83398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb2612207565b5f8051602061288e83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611eed565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d44612207565b5f805160206128ce8339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f805160206128ce833981519152555f805160206128ae833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e9c565b906040918251610dd78482611d05565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b612207565b5190205f19810190811161040f578351906020820190815260208252610e318583611d05565b60ff19915190201694855f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef390612538565b60ff60401b195f805160206128ce83398151915254165f805160206128ce833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cef565b6044356024356064356001600160401b03811161047957610f6d903690600401611d7f565b90608435946001600160801b038616860361047957610f8d86868661225a565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611d05565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e5f565b5f61102a91611d05565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d3a565b611079612207565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611d05565b9051902060ff19165f805160206128ae833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f805160206128ae83398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cef565b61113b612207565b5f805160206128ae8339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f805160206128ae833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128ae8339815191525454604051908152f35b34610479576040366003190112610479576024356004358115801590611301575b156112bc5760095f805160206128ae833981519152540190805f528160205260ff60405f205416600381101561071f5761125e577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f4915156111e4565b34610479575f366003190112610479576020610d1b6001600160801b0360065f805160206128ae83398151915254015460401c1690565b34610479576040366003190112610479576004356001600160401b03811161047957611372903690600401611cbf565b6024356001600160401b03811161047957611391903690600401611cbf565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009391935c611c865782849160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9360605b83861015611c4f578560051b82013595609e19833603018712156104795760045f805160206128ae83398151915254019485549560408986010135809703611c0b5761143760608a87010135612679565b15611bba5788859697929895013590556060945f975b61145d828b016080810190611ff9565b9050891015611b0c576114808961147a848d016080810190611ff9565b9061202e565b975f805160206128ae833981519152546114998a6126bc565b6001600160a01b03165f908152600b8201602052604090205415611aaf57600301546001600160801b03906020906001600160a01b031660448c5f6114e960606114e2846126bc565b93016126d0565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611a83575b506001600160a01b036115348a6126bc565b166080525f9160605b61154a60808c018c6126fc565b90508410156116b15761156060808c018c6126fc565b85929192101561169d5761160a602091826115818160608a028701016126bc565b611592604060608b028801016126d0565b604051908382019260608c0289013584526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526115d8606482611d05565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611d05565b9361161c6020606083028401016126bc565b61162d6040606084028501016126d0565b6080513b15610479576001600160801b0391604051946314503e5160e01b8652606085020135600486015260018060a01b031660248501521660448301525f82606481836080515af1918215610bda5760019261168d575b50019261153d565b5f61169791611d05565b8e611685565b634e487b7160e01b5f52603260045260245ffd5b979091969b93949592509997996060915f925b6116d160a08d018d611ff9565b905084101561191657836116e860a08e018e611ff9565b6116f2929161202e565b936020850194611701866126bc565b9560408201936117118584612050565b909890611720606086016126d0565b9960a086019a61172f8c612731565b8360405194859460208601978b3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080880135606483015263ffffffff60e01b1660848201520360540160148101825260340161179c9082611d05565b5190206117a891611e10565b96608083013561185857506117bf6117c6916126bc565b9382612050565b9390916117d5606082016126d0565b6080513b15610479576001600160801b036118215f95604051988996879663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e3f565b911660648301520381836080515af1918215610bda57600192611848575b505b01926116c4565b5f61185291611d05565b8f61183f565b939061186661186d916126bc565b9183612050565b91909461188561187f606086016126d0565b91612731565b6080513b156104795760805f956001600160801b036118cd6040519a8b98899863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e3f565b941660448601520135606484015263ffffffff60e01b1660848301520381836080515af1918215610bda57600192611906575b50611841565b5f61191091611d05565b8f611900565b93969a90959892509b96939b9a909a604081019060018060a01b0361193a836126bc565b16611a2a575b6020810135906080513b156104795760405195638ea59e1d60e01b87528260048801525f87602481836080515af1958615610bda57600197611a0e97611a1a575b506119a06060611999611993866126bc565b976126bc565b94016126d0565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611d05565b9601979490969161144d565b5f611a2491611d05565b5f611981565b611a33826126bc565b6080513b156104795760405190630959112b60e11b825260018060a01b031660048201525f81602481836080515af18015610bda57611a73575b50611940565b5f611a7d91611d05565b8e611a6d565b611aa39060203d8111611aa8575b611a9b8183611d05565b8101906126e4565b611522565b503d611a91565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b97509594919792907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051868a01358152a1602084880101359065ffffffffffff82168203610479576001946060856020611bae975191012091604051936020850195828d0135875265ffffffffffff60d01b9060d01b16604086015260468501528a01013560668301526086820152608681526105f560a682611d05565b950194939290936113e6565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8285611c619260208151910120612082565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479575f36600319011261047957602090600a5f805160206128ae8339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611d2657604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611d265760405191611d63601f8201601f191660200184611d05565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611d26578360051b916020604051611dd382860182611d05565b809681520192810191821161047957915b818310611df057505050565b82356001600160a01b038116810361047957815260209283019201611de4565b602080611e3d928195946040519682889351918291018585015e8201908382015203018085520183611d05565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e8f6001600160801b0393606095859360018060a01b03168852608060208901526080880191611e3f565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ecb575050611e3d92500383611d05565b84546001600160a01b0316835260019485019487945060209093019201611eb6565b5f805160206128ae83398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f805160206128ae83398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fe6575f8051602061288e83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561169d5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f805160206128ae833981519152549061209b611f4a565b926040519060208201908152602082526120b6604083611d05565b6120f2603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611d05565b5190205f9260070191835b868510156121fb5761213361212a61212461211d8860051b860186612050565b3691611d3a565b85612771565b909291926127ab565b6001600160a01b03165f9081526020859052604090205460ff16156121c05761215b90611f3c565b9385851461216c57600101936120fd565b505050509091505b1061217b57565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b94955050505050612174565b5f8051602061288e833981519152546001600160a01b0316330361222757565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f805160206128ae8339815191525491815f526009830160205260ff60405f205416600381101561071f576002036124dc57612297611eed565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610bda575f9061249f575b60ff915016604d811161040f5760646123036020936122fe6001600160801b038095600a0a16809c61223a565b61223a565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610bda575f91612480575b501561243b576e5af43d82803e903d91602b57fd5bf36002840154916040516020810191858352604082015260408152612384606082611d05565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b03831690811561242c577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f20550161241f8154611f3c565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612499915060203d602011611aa857611a9b8183611d05565b5f612349565b506020813d6020116124d4575b816124b960209383611d05565b81010312610479575160ff811681036104795760ff906122d1565b3d91506124ac565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206128ae833981519152549060088201908154612628579091600701905f5b815181101561259a57600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff191660019081179091550161255b565b5080519291506001600160401b038311611d2657680100000000000000008311611d26578154838355808410612602575b50602001905f5260205f205f5b8381106125e55750505050565b82516001600160a01b0316818301556020909201916001016125d8565b825f528360205f2091820191015b81811061261d57506125cb565b5f8155600101612610565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b612692575b505f9150565b80408381036126a357506001925050565b156126b757801561040f575f190180612687565b61268c565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f805160206128ce8339815191525460401c161561276257565b631afcd79f60e31b5f5260045ffd5b81519190604183036127a15761279a9250602082015190606060408401519301515f1a9061280b565b9192909190565b50505f9160029190565b600481101561071f57806127bd575050565b600181036127d45763f645eedf60e01b5f5260045ffd5b600281036127ef575063fce698f760e01b5f5260045260245ffd5b6003146127f95750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612882579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b0381161561287857905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200e182e44d57d86c39daa598c5a0be02cc7be1594c3571ad47bdb9e0c7ba8bc6a64736f6c634300081a0033","sourceMap":"879:17943:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;879:17943:159;;;;;;4301:16:26;879:17943:159;-1:-1:-1;;;;;879:17943:159;;4726:16:26;;:34;;;;879:17943:159;4805:1:26;4790:16;:50;;;;879:17943:159;4855:13:26;:30;;;;879:17943:159;4851:91:26;;;-1:-1:-1;;879:17943:159;;4805:1:26;879:17943:159;-1:-1:-1;;;;;;;;;;;879:17943:159;6961:1:26;;879:17943:159;4979:67:26;;879:17943:159;6893:76:26;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;879:17943:159;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:17943:159;3042:27;;-1:-1:-1;;879:17943:159;;;;;;;;;3023:52;879:17943;3023:52;;879:17943;;;;3023:52;;;;;;:::i;:::-;879:17943;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17943;3182:20;;879:17943;;1742:12;879:17943;1742:12;;879:17943;;;;1732:27;;1170:66;;4805:1:26;1769:13:159;;879:17943;;-1:-1:-1;;;;;;879:17943:159;;;-1:-1:-1;;;;;879:17943:159;;;;;;;1802:18;;;879:17943;;;;;;;;;;;;;;1845:18;;;879:17943;;;;;;;;;;;;;1924:4;1888:33;;;1170:66;1966:17;;;;;879:17943;;;-1:-1:-1;;;;;;879:17943:159;;;;;;2060:15;;;:::i;:::-;5066:101:26;;879:17943:159;5066:101:26;879:17943:159;5142:14:26;879:17943:159;-1:-1:-1;;;879:17943:159;-1:-1:-1;;;;;;;;;;;879:17943:159;;-1:-1:-1;;;;;;;;;;;879:17943:159;;4805:1:26;879:17943:159;;5142:14:26;879:17943:159;;;;;;;;;;;;;4979:67:26;-1:-1:-1;;879:17943:159;;;-1:-1:-1;;;;;;;;;;;879:17943:159;4979:67:26;;;4851:91;6498:23;;;879:17943:159;4908:23:26;879:17943:159;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;879:17943:159;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;2357:1:25;879:17943:159;;:::i;:::-;2303:62:25;;:::i;2357:1::-;879:17943:159;;;;;;;-1:-1:-1;;879:17943:159;;;;;5016:33;-1:-1:-1;;;;;;;;;;;879:17943:159;5016:33;879:17943;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;5394:21;-1:-1:-1;;;;;;;;;;;879:17943:159;5394:21;879:17943;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;879:17943:159;8601:34;879:17943;8651:13;879:17943;9026:12;;;;8646:824;8699:3;8666:31;;;;;;879:17943;;;;;;8900:55;17529:20;879:17943;;;;17529:20;;;;;;:::i;:::-;879:17943;;;17493:57;;879:17943;;;;;;;;;;;;;17493:57;;;;;;:::i;:::-;879:17943;17483:68;;8900:55;;:::i;:::-;879:17943;;;;;;;;;;;;;;;;;;;;9026:53;879:17943;;9142:20;879:17943;9142:20;;:::i;:::-;;;;9294:30;879:17943;;;;;;;;;;;;9205:19;879:17943;;;;;;;;9242:26;;;:28;879:17943;;9242:28;:::i;:::-;1170:66;;879:17943;;;;;9294:30;9138:322;879:17943;8651:13;;;9138:322;9414:31;879:17943;;;;;;;;;;;;;;;;;;;;;;;;9414:31;9138:322;;879:17943;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;;;8666:31;9534:10;8666:31;;879:17943;;;;;9500:32;9534:10;:::i;879:17943::-;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;18060:17;;;;17946:21;;879:17943;17976:3;879:17943;;17942:32;;;;;879:17943;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;17927:13;;17942:32;-1:-1:-1;879:17943:159;;;;;;-1:-1:-1;879:17943:159;;;17922:177;5955:38;879:17943;;;;;:::i;:::-;5955:38;:::i;:::-;6009:22;879:17943;6009:22;;879:17943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;-1:-1:-1;;;;;6208:17:159;-1:-1:-1;;;;;;;;;;;879:17943:159;6208:17;879:17943;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;5738:21;-1:-1:-1;;;;;;;;;;;879:17943:159;5738:21;879:17943;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;4480:12;-1:-1:-1;;;;;;;;;;;879:17943:159;4480:12;879:17943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;6787:38;2303:62:25;879:17943:159;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;6732:21;;879:17943;;-1:-1:-1;;879:17943:159;;;;;;;;;;;;;;6787:38;879:17943;;;;;;;-1:-1:-1;;879:17943:159;;;;;4633:20;-1:-1:-1;;;;;;;;;;;879:17943:159;4633:20;879:17943;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;:::i;:::-;4801:15;-1:-1:-1;;;;;;;;;;;879:17943:159;4801:15;:24;879:17943;;;;;;-1:-1:-1;879:17943:159;;;;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;:::i;:::-;5571:17;-1:-1:-1;;;;;;;;;;;879:17943:159;5571:17;:28;879:17943;;;;;;-1:-1:-1;879:17943:159;;;;;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;3665:18;;879:17943;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;7659:50;879:17943;;;;;7659:50;:::i;:::-;-1:-1:-1;;;;;879:17943:159;;;;;;;7720:75;;;;;;879:17943;;;;;;;;;;;;7720:75;;7749:9;879:17943;7720:75;;;:::i;:::-;;;;;;;;;;;;879:17943;7720:75;;;879:17943;;;;;;;;7720:75;879:17943;7720:75;;;:::i;:::-;;;;;879:17943;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;6405:30;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;6358:17;;879:17943;;-1:-1:-1;;879:17943:159;;;;;;;;;;6405:30;879:17943;;;;;;;-1:-1:-1;;879:17943:159;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;3814:18;;879:17943;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;;-1:-1:-1;;;;;;879:17943:159;;;;;;;-1:-1:-1;;;;;879:17943:159;3975:40:25;879:17943:159;;3975:40:25;879:17943:159;;;;;;;-1:-1:-1;;879:17943:159;;;;;;;:::i;:::-;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;;;;;;6431:44:26;;;;879:17943:159;6427:105:26;;-1:-1:-1;;879:17943:159;;;-1:-1:-1;;;;;;;;;;;879:17943:159;-1:-1:-1;;;;;;;;;;;879:17943:159;;2227:16;;879:17943;2144:1;2276:21;;879:17943;2330:21;;;879:17943;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;2396:24;;879:17943;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:17943:159;3042:27;;-1:-1:-1;;879:17943:159;;;;;;;;;3023:52;879:17943;3023:52;;879:17943;;;;3023:52;;;;;;:::i;:::-;879:17943;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17943;3182:20;;879:17943;;2567:12;879:17943;2567:12;879:17943;;;;2557:27;1170:66;;6593:4:26;2594:13:159;;879:17943;;-1:-1:-1;;;;;;879:17943:159;;;-1:-1:-1;;;;;879:17943:159;;;;;;;2144:1;2627:18;;879:17943;;;;;;;;;;;;;;2330:21;2670:18;;;879:17943;;;;;;;;;;;;;;;;6656:20:26;;879:17943:159;;-1:-1:-1;2728:15:159;;;:::i;:::-;-1:-1:-1;;;879:17943:159;-1:-1:-1;;;;;;;;;;;879:17943:159;;-1:-1:-1;;;;;;;;;;;879:17943:159;;2144:1;879:17943;;6656:20:26;879:17943:159;6431:44:26;879:17943:159;2144:1;-1:-1:-1;;;;;879:17943:159;;6450:25:26;;6431:44;;879:17943:159;;;-1:-1:-1;;879:17943:159;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;8106:50;;;;;:::i;:::-;879:17943;;;;;;;;;;;8281:30;879:17943;8281:30;;879:17943;;;;;;;;8281:30;;;879:17943;8281:30;;:::i;:::-;879:17943;8271:41;;8219:94;;;;;879:17943;;-1:-1:-1;;;8219:94:159;;-1:-1:-1;;;;;879:17943:159;;;;8219:94;;879:17943;;;;;-1:-1:-1;879:17943:159;;;-1:-1:-1;8219:94:159;;;;;;;;;879:17943;8324:73;;;;;;;879:17943;;;;;;;;;;;;8324:73;;8351:9;879:17943;8324:73;;;:::i;8219:94::-;879:17943;8219:94;;;:::i;:::-;;;;879:17943;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;879:17943:159;;;;;3042:27;879:17943;;;;;;;;;;;3023:52;879:17943;3023:52;;879:17943;;;;3023:52;;;879:17943;3023:52;;:::i;:::-;879:17943;;3013:63;;-1:-1:-1;;3013:89:159;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17943;;3182:20;879:17943;;;;;;;-1:-1:-1;;879:17943:159;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;;3958:13;879:17943;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17943:159;4097:13;;879:17943;;-1:-1:-1;;;;;;879:17943:159;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;3504:30;879:17943;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;;;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;;;7081:15;;;;;:35;;879:17943;;;;7217:12;-1:-1:-1;;;;;;;;;;;879:17943:159;7217:12;879:17943;;;;;;;;;;;;;;;;;;;;;7390:43;879:17943;;;;;;;;;;;7345:29;879:17943;;;;;;;;;;;;;;;;;7390:43;879:17943;;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;;;;7081:35;7100:11;879:17943;7100:11;:16;;7081:35;;879:17943;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;6569:21:159;-1:-1:-1;;;;;;;;;;;879:17943:159;6569:21;879:17943;;;;6448:149;;879:17943;;;;;;-1:-1:-1;;879:17943:159;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;:::i;:::-;516:66:62;7368:53:64;;;;1292:93:62;;7628:52:64;;;1503:4:62;516:66;7628:52:64;879:17943:159;;;9811:3;9777:32;;;;;;879:17943;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;12284:30;879:17943;;;;;;;;12318:34;879:17943;12284:68;;;879:17943;;12416:49;879:17943;;;;12435:29;879:17943;12416:49;:::i;:::-;879:17943;;;;;;;;;;;;1170:66;;879:17943;12760:13;879:17943;12755:320;12815:3;12779:27;879:17943;;;12779:27;;;;;:::i;:::-;12775:38;;;;;;;12877:30;879:17943;12877:27;879:17943;;;12779:27;;;;12877;:::i;:::-;:30;;:::i;:::-;879:17943;-1:-1:-1;;;;;;;;;;;879:17943:159;13931:23;;;:::i;:::-;-1:-1:-1;;;;;879:17943:159;;;;;13915:15;;;879:17943;;;;;;13915:45;879:17943;;14068:18;;879:17943;-1:-1:-1;;;;;879:17943:159;;;-1:-1:-1;;;;;879:17943:159;;14123:23;879:17943;14148:30;879:17943;14123:23;;;:::i;:::-;14148:30;;;:::i;:::-;879:17943;;-1:-1:-1;;;14097:82:159;;-1:-1:-1;;;;;879:17943:159;;;;14097:82;;879:17943;;;;;;;;;;;;;;-1:-1:-1;14097:82:159;;;;;;;;12815:3;-1:-1:-1;;;;;;14220:23:159;;;:::i;:::-;879:17943;;;;;;14355:3;14319:27;12779;14319;;;;:::i;:::-;14315:38;;;;;;;14407:27;12779;14319;;14407;;:::i;:::-;879:17943;;;;;;;;;;;;14558:22;879:17943;;;;;;14558:22;;:::i;:::-;14582:16;879:17943;;;;;;14582:16;;:::i;:::-;879:17943;;14519:80;;;;879:17943;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;12779:27;879:17943;;;;;;;14519:80;;;;;;:::i;:::-;879:17943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14519:80;;879:17943;;;;;;:::i;:::-;;14675:22;879:17943;;;;;;14558:22;14675;:::i;:::-;14699:16;879:17943;;;;;;14582:16;14699;:::i;:::-;14628:88;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;14628:88;;879:17943;;;;;;14628:88;;879:17943;;;;;;;;;;;;;;;;;14628:88;14519:80;14628:88;;;;;;;;;;;1503:4:62;14628:88:159;;;14355:3;;879:17943;14300:13;;;14628:88;879:17943;14628:88;;;:::i;:::-;;;;879:17943;;;;;;;;;;;;14315:38;;;;;;;;;;;;;;879:17943;14780:13;879:17943;14775:826;14832:3;14799:24;;;;;;:::i;:::-;14795:35;;;;;;;14799:24;14894;14799;;;;14894;:::i;:::-;:27;;;;:::i;:::-;17122;879:17943;17122:27;;;;;;:::i;:::-;17167:23;879:17943;17167:23;;;;;;;:::i;:::-;17208:21;;;;879:17943;17208:21;;;:::i;:::-;17296:33;14799:24;17296:33;;;;;;:::i;:::-;879:17943;;;17052:291;;;879:17943;17052:291;;879:17943;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;12779:27;879:17943;;;;;;12779:27;17247:28;;879:17943;14519:80;879:17943;;;;;;;;;;;17052:291;879:17943;17052:291;;;;;;879:17943;17052:291;;;;;:::i;:::-;879:17943;17029:324;;14953:67;;;:::i;:::-;17247:28;12779:27;17247:28;;879:17943;12779:27;;15160;;15189:23;15160:27;;:::i;:::-;15189:23;;;:::i;:::-;17208:21;;;15214;879:17943;17208:21;;15214;:::i;:::-;15095:158;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;15095:158;;879:17943;;15095:158;;879:17943;;;;;;;;;;;12779:27;879:17943;;;;;;;;;:::i;:::-;;;14519:80;879:17943;;;15095:158;;;;;;;;;;;;1503:4:62;15095:158:159;;;15035:556;;;879:17943;14780:13;;;15095:158;879:17943;15095:158;;;:::i;:::-;;;;15035:556;15335:27;;;15384:23;15335:27;;:::i;:::-;15384:23;;;:::i;:::-;17208:21;;;15525:33;15429:21;879:17943;17208:21;;15429;:::i;:::-;15525:33;;:::i;:::-;15292:284;;;;;;12779:27;879:17943;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;15292:284;;879:17943;;;;;;;15292:284;;879:17943;14799:24;879:17943;;;;;;;;;:::i;:::-;;;;;;;17247:28;879:17943;14519:80;879:17943;;;;;;;;;;;15292:284;;;;;;;;;;;;1503:4:62;15292:284:159;;;15035:556;;;;15292:284;879:17943;15292:284;;;:::i;:::-;;;;14795:35;;;;;;;;;;;;;;;;879:17943;15615:25;;879:17943;;;;;;15615:25;;;:::i;:::-;879:17943;15611:121;;14775:826;879:17943;15766:28;;879:17943;15742:53;;;;;;;879:17943;;;;;;15742:53;;;879:17943;15742:53;;879:17943;;15742:53;879:17943;15742:53;;;;;;;;;;;1503:4:62;15742:53:159;13017:47;15742:53;;;14775:826;15847:23;15965:30;879:17943;15926:25;15847:23;;;:::i;:::-;15926:25;;:::i;:::-;14148:30;;15965;:::i;:::-;879:17943;;;;;;16009:27;879:17943;;;;;;16050:25;879:17943;;;16783:103;879:17943;16783:103;;879:17943;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;12779:27;879:17943;;;;;;;;;;;;;;;16783:103;;;;;;:::i;13017:47::-;12815:3;879:17943;12760:13;;;;;;;15742:53;879:17943;15742:53;;;:::i;:::-;;;;15611:121;15695:25;;;:::i;:::-;15670:51;;;;;;879:17943;;;;;;15670:51;;879:17943;;;;;;;15670:51;;879:17943;;15670:51;879:17943;15670:51;;;;;;;;;;;;15611:121;;;;15670:51;879:17943;15670:51;;;:::i;:::-;;;;14097:82;;;879:17943;14097:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;879:17943;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14519:80:159;879:17943;;;;;;12775:38;;;;;;;;;13090:41;879:17943;;;;;;;;;13090:41;879:17943;;;;13222:30;879:17943;;;;;;;;;1503:4:62;879:17943:159;;;;10011:57;879:17943;;;;13357:28;879:17943;;;16369:101;879:17943;16369:101;;879:17943;;;;;;;;;;;;;;;;;;;;;;;;12435:29;879:17943;;;;;;;;;;16369:101;;;;;;:::i;10011:57::-;9811:3;879:17943;9762:13;;;;;;;879:17943;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14519:80:159;879:17943;;;;;;;14519:80;879:17943;;;;;;;;;;;;;;;;;;;;;;;9777:32;;;10144:10;9777:32;879:17943;;;;;10109:33;10144:10;:::i;:::-;879:17943;516:66:62;7628:52:64;879:17943:159;1292:93:62;1344:30;;;879:17943:159;1344:30:62;879:17943:159;;1344:30:62;879:17943:159;;;;;;-1:-1:-1;;879:17943:159;;;;;;4309:26;-1:-1:-1;;;;;;;;;;;879:17943:159;4309:26;879:17943;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:17943:159;;;;;;:::o;:::-;;;14519:80;;879:17943;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;:::o;:::-;;;;-1:-1:-1;879:17943:159;;;;;-1:-1:-1;879:17943:159;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;14519:80;879:17943;;-1:-1:-1;;879:17943:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;;;;;;;-1:-1:-1;;879:17943:159;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;-1:-1:-1;879:17943:159;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;-1:-1:-1;879:17943:159;;;;;;;;6838:113;-1:-1:-1;;;;;;;;;;;879:17943:159;6208:17;;879:17943;-1:-1:-1;;;;;879:17943:159;;;-1:-1:-1;;;;;879:17943:159;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;6838:113;:::o;879:17943::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;879:17943:159;;;;;;;:::o;5062:204::-;-1:-1:-1;;;;;;;;;;;879:17943:159;5016:33;5394:21;;;879:17943;5016:33;;879:17943;;;;;;;;;;;;;;;;5246:4;879:17943;;;;;;;5254:5;879:17943;;5062:204;:::o;3405:215:25:-;-1:-1:-1;;;;;879:17943:159;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;879:17943:159;;-1:-1:-1;;;;;;879:17943:159;;;;;;;-1:-1:-1;;;;;879:17943:159;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;879:17943:159;;3509:1:25;3534:31;879:17943:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;:::o;11264:844::-;;-1:-1:-1;;;;;;;;;;;879:17943:159;11432:21;;;:::i;:::-;879:17943;;;11532:26;;;;879:17943;;;11532:26;;;;879:17943;11532:26;;:::i;:::-;2858:45:68;879:17943:159;;;2858:45:68;;11532:26:159;2858:45:68;;879:17943:159;;;;;;11494:4;879:17943;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;;;2858:45:68;;14519:80:159;;2858:45:68;;;;;;:::i;:::-;879:17943:159;2848:56:68;;-1:-1:-1;;11793:17:159;;;-1:-1:-1;11650:3:159;11627:21;;;;;;3915:8:66;3859:27;879:17943:159;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:66;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;879:17943:159;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;;;11845:17;;;:::i;:::-;:30;;;;11841:82;;879:17943;;11612:13;;;11841:82;11899:5;;;;;;;11607:416;12041:28;879:17943;;11264:844::o;879:17943::-;;;-1:-1:-1;;;879:17943:159;;11532:26;879:17943;;;;;;;;;;;;;;;;;11789:224;879:17943;;-1:-1:-1;;;879:17943:159;;11532:26;879:17943;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;11627:21;;;;;;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;879:17943:159;-1:-1:-1;;;;;879:17943:159;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;879:17943:159;;-1:-1:-1;2763:40:25;879:17943:159;;-1:-1:-1;;;;;879:17943:159;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;:::o;10204:1054::-;;;;-1:-1:-1;;;;;;;;;;;879:17943:159;;;-1:-1:-1;879:17943:159;10410:12;;;879:17943;;;;-1:-1:-1;879:17943:159;;;;;;;;;10434:19;10410:43;879:17943;;10538:9;;:::i;:::-;879:17943;10674:18;;879:17943;;;;-1:-1:-1;;;10659:45:159;;10674:18;;;;879:17943;;;;;10659:45;;879:17943;;-1:-1:-1;;;;;879:17943:159;10659:45;;;;;;-1:-1:-1;10659:45:159;;;10204:1054;879:17943;;;;;;;;;17686:73;10737:41;879:17943;;10737:32;-1:-1:-1;;;;;879:17943:159;;;;;10737:32;;;:::i;:::-;:41;:::i;:::-;879:17943;;;;-1:-1:-1;;;17686:73:159;;17726:9;10659:45;17686:73;;879:17943;17745:4;879:17943;;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;-1:-1:-1;;;;;;;879:17943:159;17686:73;;;;;;;-1:-1:-1;17686:73:159;;;10204:1054;879:17943;;;;3743:569:44;10434:19:159;11020:18;;879:17943;;;;;11050:30;;879:17943;;;;;;;;;11050:30;;;879:17943;11050:30;;:::i;:::-;879:17943;11040:41;;3743:569:44;;;;;;;;-1:-1:-1;3743:569:44;;;;;;;;879:17943:159;3743:569:44;;10410:12:159;-1:-1:-1;3743:569:44;879:17943:159;-1:-1:-1;;;;;879:17943:159;;;4325:22:44;;4321:85;;11174:31:159;11093:24;11136:20;879:17943;11093:24;879:17943;-1:-1:-1;879:17943:159;11093:15;;;879:17943;;;;-1:-1:-1;879:17943:159;1170:66;11136:20;:22;879:17943;;11136:22;:::i;:::-;1170:66;;879:17943;;;;;11174:31;11216:35;10204:1054;:::o;4321:85:44:-;4370:25;;;-1:-1:-1;4370:25:44;10659:45:159;-1:-1:-1;4370:25:44;879:17943:159;;;-1:-1:-1;;;879:17943:159;;;10659:45;879:17943;;;;;;;;;;;;;17686:73;;879:17943;17686:73;;;;879:17943;17686:73;879:17943;17686:73;;;;;;;:::i;:::-;;;;10659:45;;879:17943;10659:45;;879:17943;10659:45;;;;;;879:17943;10659:45;;;:::i;:::-;;;879:17943;;;;;;;;;;;;;10659:45;;;;;;-1:-1:-1;10659:45:159;;879:17943;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;18150:442;-1:-1:-1;;;;;;;;;;;879:17943:159;18284:21;;;;879:17943;;;;;18373:13;;18489:17;;;-1:-1:-1;18417:3:159;879:17943;;18388:27;;;;;879:17943;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;-1:-1:-1;879:17943:159;;;;;;;;;;;;-1:-1:-1;;879:17943:159;;;;;;;;;18373:13;;18388:27;-1:-1:-1;879:17943:159;;;18388:27;-1:-1:-1;;;;;;879:17943:159;;;;;;;;;;;;;;;;;;;18368:167;879:17943;;;;-1:-1:-1;879:17943:159;;-1:-1:-1;879:17943:159;-1:-1:-1;879:17943:159;;;;;;18150:442;;;;:::o;879:17943::-;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;;;-1:-1:-1;879:17943:159;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17943:159;;;;;;;13408:338;;879:17943;;13505:12;879:17943;13505:12;879:17943;;;;13488:230;13523:5;;;13488:230;-1:-1:-1;879:17943:159;;-1:-1:-1;13408:338:159:o;13530:3::-;13563:12;;13593:11;;;;;-1:-1:-1;13520:1:159;;-1:-1:-1;;13624:11:159:o;13589:119::-;13660:8;13656:52;;879:17943;;;;-1:-1:-1;;879:17943:159;;13493:28;;13656:52;13688:5;;879:17943;;-1:-1:-1;;;;;879:17943:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;879:17943:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17943:159;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;879:17943:159;;;;;;;:::o;7084:141:26:-;879:17943:159;-1:-1:-1;;;;;;;;;;;879:17943:159;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;2129:766:66;879:17943:159;;;2129:766:66;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:66;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;879:17943:159;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;879:17943:159;7378:38:66;;879:17943:159;;7439:23:66;;;7291:20;7439:23;879:17943:159;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;879:17943:159;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;879:17943:159;;;7291:20:66;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;879:17943:159;;;;;;-1:-1:-1;879:17943:159;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;879:17943:159;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,uint48,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"01b1d156","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99\",\"dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0xf0f7c9520fc44106670165c922b98be4e9761727ef11add36e703a05c5041bae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3d20a00937d6caacb9daeb49a264e5feede09937d24e3d97e35f1b8ffab2c1a0\",\"dweb:/ipfs/QmVtTvPVuMrRDeLwEi4vxmXrXNQEkoF7m5buSUKpUpxAun\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct IRouter.OutgoingMessage[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x06efe951da3713d08bf25c648e3013704fc045916767755131f3e832c23e3235","urls":["bzz-raw://a53a448e3ceac201f7294bff5a0e9a63655c0fa63aa5112dadd3c053dea9ec99","dweb:/ipfs/QmUsLMUrzqgZahyL12hxikRhPQaYP13hJDyUuqotJ1Yzj2"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0xf0f7c9520fc44106670165c922b98be4e9761727ef11add36e703a05c5041bae","urls":["bzz-raw://3d20a00937d6caacb9daeb49a264e5feede09937d24e3d97e35f1b8ffab2c1a0","dweb:/ipfs/QmVtTvPVuMrRDeLwEi4vxmXrXNQEkoF7m5buSUKpUpxAun"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":76880,"exportedSymbols":{"Clones":[41840],"ECDSA":[45249],"IERC20":[43140],"IERC20Metadata":[43166],"IMirror":[73387],"IRouter":[73756],"IWrappedVara":[73767],"MessageHashUtils":[45550],"OwnableUpgradeable":[39387],"ReentrancyGuardTransient":[44045],"Router":[76879],"StorageSlot":[44581]},"nodeType":"SourceUnit","src":"39:18784:159","nodes":[{"id":75138,"nodeType":"PragmaDirective","src":"39:24:159","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75140,"nodeType":"ImportDirective","src":"65:74:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":44582,"symbolAliases":[{"foreign":{"id":75139,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"73:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75142,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":75141,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75144,"nodeType":"ImportDirective","src":"242:64:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":75143,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"250:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75146,"nodeType":"ImportDirective","src":"307:75:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":45250,"symbolAliases":[{"foreign":{"id":75145,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45249,"src":"315:5:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75148,"nodeType":"ImportDirective","src":"383:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":45551,"symbolAliases":[{"foreign":{"id":75147,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"391:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75150,"nodeType":"ImportDirective","src":"481:100:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":44046,"symbolAliases":[{"foreign":{"id":75149,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44045,"src":"489:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75152,"nodeType":"ImportDirective","src":"582:38:159","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":73757,"symbolAliases":[{"foreign":{"id":75151,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73756,"src":"590:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75154,"nodeType":"ImportDirective","src":"621:38:159","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":75153,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"629:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75156,"nodeType":"ImportDirective","src":"660:48:159","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":73768,"symbolAliases":[{"foreign":{"id":75155,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"668:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75158,"nodeType":"ImportDirective","src":"709:70:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":43141,"symbolAliases":[{"foreign":{"id":75157,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"717:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75160,"nodeType":"ImportDirective","src":"780:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":76880,"sourceUnit":43167,"symbolAliases":[{"foreign":{"id":75159,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"788:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76879,"nodeType":"ContractDefinition","src":"879:17943:159","nodes":[{"id":75169,"nodeType":"UsingForDirective","src":"958:24:159","nodes":[],"global":false,"libraryName":{"id":75167,"name":"ECDSA","nameLocations":["964:5:159"],"nodeType":"IdentifierPath","referencedDeclaration":45249,"src":"964:5:159"},"typeName":{"id":75168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"974:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":75172,"nodeType":"UsingForDirective","src":"987:35:159","nodes":[],"global":false,"libraryName":{"id":75170,"name":"MessageHashUtils","nameLocations":["993:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":45550,"src":"993:16:159"},"typeName":{"id":75171,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75175,"nodeType":"VariableDeclaration","src":"1130:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1155:12:159","scope":76879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":75174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1170:66:159","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":75183,"nodeType":"FunctionDefinition","src":"1296:53:159","nodes":[],"body":{"id":75182,"nodeType":"Block","src":"1310:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75179,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1320:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75181,"nodeType":"ExpressionStatement","src":"1320:22:159"}]},"documentation":{"id":75176,"nodeType":"StructuredDocumentation","src":"1243:48:159","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75177,"nodeType":"ParameterList","parameters":[],"src":"1307:2:159"},"returnParameters":{"id":75178,"nodeType":"ParameterList","parameters":[],"src":"1310:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75265,"nodeType":"FunctionDefinition","src":"1355:728:159","nodes":[],"body":{"id":75264,"nodeType":"Block","src":"1557:526:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":75200,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75185,"src":"1582:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75199,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1567:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75202,"nodeType":"ExpressionStatement","src":"1567:28:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":75204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1621:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":75203,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75406,"src":"1606:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75206,"nodeType":"ExpressionStatement","src":"1606:41:159"},{"assignments":[75209],"declarations":[{"constant":false,"id":75209,"mutability":"mutable","name":"router","nameLocation":"1673:6:159","nodeType":"VariableDeclaration","scope":75264,"src":"1657:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75208,"nodeType":"UserDefinedTypeName","pathNode":{"id":75207,"name":"Storage","nameLocations":["1657:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"1657:7:159"},"referencedDeclaration":73470,"src":"1657:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75212,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75210,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"1682:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1682:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1657:38:159"},{"expression":{"id":75222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75213,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1706:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1713:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"1706:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75217,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1742:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:159","memberName":"number","nodeType":"MemberAccess","src":"1742:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1742:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75216,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1732:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1732:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1706:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75223,"nodeType":"ExpressionStatement","src":"1706:53:159"},{"expression":{"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75224,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1769:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1776:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"1769:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75227,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75187,"src":"1785:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1769:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75229,"nodeType":"ExpressionStatement","src":"1769:23:159"},{"expression":{"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75230,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1802:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1809:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"1802:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75233,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75189,"src":"1823:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1802:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75235,"nodeType":"ExpressionStatement","src":"1802:33:159"},{"expression":{"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75236,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1845:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1852:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"1845:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75239,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75191,"src":"1866:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1845:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75241,"nodeType":"ExpressionStatement","src":"1845:33:159"},{"expression":{"id":75246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75242,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1888:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1895:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"1888:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":75245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1924:4:159","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1888:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75247,"nodeType":"ExpressionStatement","src":"1888:40:159"},{"expression":{"id":75252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75248,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"1966:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1973:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"1966:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":75251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:13:159","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1966:33:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75253,"nodeType":"ExpressionStatement","src":"1966:33:159"},{"expression":{"id":75258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75254,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"2009:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2016:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"2009:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":75257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2033:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2009:26:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75259,"nodeType":"ExpressionStatement","src":"2009:26:159"},{"expression":{"arguments":[{"id":75261,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75194,"src":"2060:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75260,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76865,"src":"2045:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2045:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75263,"nodeType":"ExpressionStatement","src":"2045:31:159"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":75197,"kind":"modifierInvocation","modifierName":{"id":75196,"name":"initializer","nameLocations":["1545:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1545:11:159"},"nodeType":"ModifierInvocation","src":"1545:11:159"}],"name":"initialize","nameLocation":"1364:10:159","parameters":{"id":75195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75185,"mutability":"mutable","name":"initialOwner","nameLocation":"1392:12:159","nodeType":"VariableDeclaration","scope":75265,"src":"1384:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75184,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75187,"mutability":"mutable","name":"_mirror","nameLocation":"1422:7:159","nodeType":"VariableDeclaration","scope":75265,"src":"1414:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75186,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75189,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1447:12:159","nodeType":"VariableDeclaration","scope":75265,"src":"1439:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75188,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75191,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1477:12:159","nodeType":"VariableDeclaration","scope":75265,"src":"1469:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75190,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75194,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1516:15:159","nodeType":"VariableDeclaration","scope":75265,"src":"1499:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75192,"name":"address","nodeType":"ElementaryTypeName","src":"1499:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75193,"nodeType":"ArrayTypeName","src":"1499:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1374:163:159"},"returnParameters":{"id":75198,"nodeType":"ParameterList","parameters":[],"src":"1557:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75346,"nodeType":"FunctionDefinition","src":"2089:662:159","nodes":[],"body":{"id":75345,"nodeType":"Block","src":"2147:604:159","nodes":[],"statements":[{"assignments":[75275],"declarations":[{"constant":false,"id":75275,"mutability":"mutable","name":"oldRouter","nameLocation":"2173:9:159","nodeType":"VariableDeclaration","scope":75345,"src":"2157:25:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75274,"nodeType":"UserDefinedTypeName","pathNode":{"id":75273,"name":"Storage","nameLocations":["2157:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2157:7:159"},"referencedDeclaration":73470,"src":"2157:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75276,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"2185:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2157:41:159"},{"assignments":[75280],"declarations":[{"constant":false,"id":75280,"mutability":"mutable","name":"_mirror","nameLocation":"2217:7:159","nodeType":"VariableDeclaration","scope":75345,"src":"2209:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75279,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75283,"initialValue":{"expression":{"id":75281,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75275,"src":"2227:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2237:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2227:16:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:34:159"},{"assignments":[75285],"declarations":[{"constant":false,"id":75285,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2261:12:159","nodeType":"VariableDeclaration","scope":75345,"src":"2253:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75284,"name":"address","nodeType":"ElementaryTypeName","src":"2253:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75288,"initialValue":{"expression":{"id":75286,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75275,"src":"2276:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2286:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2276:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2253:44:159"},{"assignments":[75290],"declarations":[{"constant":false,"id":75290,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2315:12:159","nodeType":"VariableDeclaration","scope":75345,"src":"2307:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75289,"name":"address","nodeType":"ElementaryTypeName","src":"2307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75293,"initialValue":{"expression":{"id":75291,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75275,"src":"2330:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2330:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2307:44:159"},{"assignments":[75298],"declarations":[{"constant":false,"id":75298,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2378:15:159","nodeType":"VariableDeclaration","scope":75345,"src":"2361:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75296,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75297,"nodeType":"ArrayTypeName","src":"2361:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":75301,"initialValue":{"expression":{"id":75299,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75275,"src":"2396:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2406:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"2396:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2361:59:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":75303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2446:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":75302,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75406,"src":"2431:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75305,"nodeType":"ExpressionStatement","src":"2431:41:159"},{"assignments":[75308],"declarations":[{"constant":false,"id":75308,"mutability":"mutable","name":"router","nameLocation":"2498:6:159","nodeType":"VariableDeclaration","scope":75345,"src":"2482:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75307,"nodeType":"UserDefinedTypeName","pathNode":{"id":75306,"name":"Storage","nameLocations":["2482:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2482:7:159"},"referencedDeclaration":73470,"src":"2482:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75311,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75309,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"2507:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2482:38:159"},{"expression":{"id":75321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75312,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75308,"src":"2531:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2538:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"2531:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75316,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2567:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:6:159","memberName":"number","nodeType":"MemberAccess","src":"2567:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2582:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2567:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75315,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2557:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2531:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75322,"nodeType":"ExpressionStatement","src":"2531:53:159"},{"expression":{"id":75327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75323,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75308,"src":"2594:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2601:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2594:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75326,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75280,"src":"2610:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2594:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75328,"nodeType":"ExpressionStatement","src":"2594:23:159"},{"expression":{"id":75333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75329,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75308,"src":"2627:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2634:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2627:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75332,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75285,"src":"2648:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75334,"nodeType":"ExpressionStatement","src":"2627:33:159"},{"expression":{"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75335,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75308,"src":"2670:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2677:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2670:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75338,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75290,"src":"2691:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2670:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75340,"nodeType":"ExpressionStatement","src":"2670:33:159"},{"expression":{"arguments":[{"id":75342,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75298,"src":"2728:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75341,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76865,"src":"2713:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75344,"nodeType":"ExpressionStatement","src":"2713:31:159"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75268,"kind":"modifierInvocation","modifierName":{"id":75267,"name":"onlyOwner","nameLocations":["2120:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2120:9:159"},"nodeType":"ModifierInvocation","src":"2120:9:159"},{"arguments":[{"hexValue":"32","id":75270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2144:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75271,"kind":"modifierInvocation","modifierName":{"id":75269,"name":"reinitializer","nameLocations":["2130:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"2130:13:159"},"nodeType":"ModifierInvocation","src":"2130:16:159"}],"name":"reinitialize","nameLocation":"2098:12:159","parameters":{"id":75266,"nodeType":"ParameterList","parameters":[],"src":"2110:2:159"},"returnParameters":{"id":75272,"nodeType":"ParameterList","parameters":[],"src":"2147:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75358,"nodeType":"FunctionDefinition","src":"2790:126:159","nodes":[],"body":{"id":75357,"nodeType":"Block","src":"2846:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":75353,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75175,"src":"2890:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75351,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"2863:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2875:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"2863:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2904:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"2863:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75350,"id":75356,"nodeType":"Return","src":"2856:53:159"}]},"baseFunctions":[73580],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2799:14:159","parameters":{"id":75347,"nodeType":"ParameterList","parameters":[],"src":"2813:2:159"},"returnParameters":{"id":75350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75358,"src":"2837:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2837:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2836:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75406,"nodeType":"FunctionDefinition","src":"2922:287:159","nodes":[],"body":{"id":75405,"nodeType":"Block","src":"2988:221:159","nodes":[],"statements":[{"assignments":[75366],"declarations":[{"constant":false,"id":75366,"mutability":"mutable","name":"slot","nameLocation":"3006:4:159","nodeType":"VariableDeclaration","scope":75405,"src":"2998:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2998:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75392,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75375,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75360,"src":"3058:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":75374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3052:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75373,"name":"bytes","nodeType":"ElementaryTypeName","src":"3052:5:159","typeDescriptions":{}}},"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75372,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3042:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3034:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75370,"name":"uint256","nodeType":"ElementaryTypeName","src":"3034:7:159","typeDescriptions":{}}},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3034:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3073:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3034:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3023:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3027:6:159","memberName":"encode","nodeType":"MemberAccess","src":"3023:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75367,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3013:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3013:63:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":75390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3079:23:159","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":75387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3096:4:159","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":75386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3088:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75385,"name":"uint256","nodeType":"ElementaryTypeName","src":"3088:7:159","typeDescriptions":{}}},"id":75388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":75383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3080:7:159","typeDescriptions":{}}},"id":75389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3013:89:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2998:104:159"},{"expression":{"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":75396,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75175,"src":"3140:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75393,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"3113:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"3113:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3154:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"3113:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75399,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75366,"src":"3162:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3113:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75401,"nodeType":"ExpressionStatement","src":"3113:53:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75402,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73565,"src":"3182:18:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75404,"nodeType":"EmitStatement","src":"3177:25:159"}]},"baseFunctions":[73585],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":75363,"kind":"modifierInvocation","modifierName":{"id":75362,"name":"onlyOwner","nameLocations":["2978:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2978:9:159"},"nodeType":"ModifierInvocation","src":"2978:9:159"}],"name":"setStorageSlot","nameLocation":"2931:14:159","parameters":{"id":75361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75360,"mutability":"mutable","name":"namespace","nameLocation":"2960:9:159","nodeType":"VariableDeclaration","scope":75406,"src":"2946:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75359,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2945:25:159"},"returnParameters":{"id":75364,"nodeType":"ParameterList","parameters":[],"src":"2988:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75421,"nodeType":"FunctionDefinition","src":"3215:153:159","nodes":[],"body":{"id":75420,"nodeType":"Block","src":"3273:95:159","nodes":[],"statements":[{"assignments":[75413],"declarations":[{"constant":false,"id":75413,"mutability":"mutable","name":"router","nameLocation":"3299:6:159","nodeType":"VariableDeclaration","scope":75420,"src":"3283:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75412,"nodeType":"UserDefinedTypeName","pathNode":{"id":75411,"name":"Storage","nameLocations":["3283:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3283:7:159"},"referencedDeclaration":73470,"src":"3283:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75416,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75414,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"3308:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3283:38:159"},{"expression":{"expression":{"id":75417,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75413,"src":"3338:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"3338:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75410,"id":75419,"nodeType":"Return","src":"3331:30:159"}]},"baseFunctions":[73590],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3224:16:159","parameters":{"id":75407,"nodeType":"ParameterList","parameters":[],"src":"3240:2:159"},"returnParameters":{"id":75410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75421,"src":"3264:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3264:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3263:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75436,"nodeType":"FunctionDefinition","src":"3374:167:159","nodes":[],"body":{"id":75435,"nodeType":"Block","src":"3439:102:159","nodes":[],"statements":[{"assignments":[75428],"declarations":[{"constant":false,"id":75428,"mutability":"mutable","name":"router","nameLocation":"3465:6:159","nodeType":"VariableDeclaration","scope":75435,"src":"3449:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75427,"nodeType":"UserDefinedTypeName","pathNode":{"id":75426,"name":"Storage","nameLocations":["3449:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3449:7:159"},"referencedDeclaration":73470,"src":"3449:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75431,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75429,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"3474:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3474:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3449:38:159"},{"expression":{"expression":{"id":75432,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75428,"src":"3504:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"3504:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75425,"id":75434,"nodeType":"Return","src":"3497:37:159"}]},"baseFunctions":[73595],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3383:23:159","parameters":{"id":75422,"nodeType":"ParameterList","parameters":[],"src":"3406:2:159"},"returnParameters":{"id":75425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75436,"src":"3430:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3430:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3429:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75451,"nodeType":"FunctionDefinition","src":"3547:143:159","nodes":[],"body":{"id":75450,"nodeType":"Block","src":"3600:90:159","nodes":[],"statements":[{"assignments":[75443],"declarations":[{"constant":false,"id":75443,"mutability":"mutable","name":"router","nameLocation":"3626:6:159","nodeType":"VariableDeclaration","scope":75450,"src":"3610:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75442,"nodeType":"UserDefinedTypeName","pathNode":{"id":75441,"name":"Storage","nameLocations":["3610:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3610:7:159"},"referencedDeclaration":73470,"src":"3610:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75446,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75444,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"3635:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3610:38:159"},{"expression":{"expression":{"id":75447,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"3665:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3672:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"3665:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75440,"id":75449,"nodeType":"Return","src":"3658:25:159"}]},"baseFunctions":[73600],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3556:11:159","parameters":{"id":75437,"nodeType":"ParameterList","parameters":[],"src":"3567:2:159"},"returnParameters":{"id":75440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75451,"src":"3591:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75438,"name":"address","nodeType":"ElementaryTypeName","src":"3591:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3590:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75466,"nodeType":"FunctionDefinition","src":"3696:143:159","nodes":[],"body":{"id":75465,"nodeType":"Block","src":"3749:90:159","nodes":[],"statements":[{"assignments":[75458],"declarations":[{"constant":false,"id":75458,"mutability":"mutable","name":"router","nameLocation":"3775:6:159","nodeType":"VariableDeclaration","scope":75465,"src":"3759:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75457,"nodeType":"UserDefinedTypeName","pathNode":{"id":75456,"name":"Storage","nameLocations":["3759:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3759:7:159"},"referencedDeclaration":73470,"src":"3759:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75461,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75459,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"3784:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3784:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3759:38:159"},{"expression":{"expression":{"id":75462,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75458,"src":"3814:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"3814:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75455,"id":75464,"nodeType":"Return","src":"3807:25:159"}]},"baseFunctions":[73605],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3705:11:159","parameters":{"id":75452,"nodeType":"ParameterList","parameters":[],"src":"3716:2:159"},"returnParameters":{"id":75455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75466,"src":"3740:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75453,"name":"address","nodeType":"ElementaryTypeName","src":"3740:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3739:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75481,"nodeType":"FunctionDefinition","src":"3845:133:159","nodes":[],"body":{"id":75480,"nodeType":"Block","src":"3893:85:159","nodes":[],"statements":[{"assignments":[75473],"declarations":[{"constant":false,"id":75473,"mutability":"mutable","name":"router","nameLocation":"3919:6:159","nodeType":"VariableDeclaration","scope":75480,"src":"3903:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75472,"nodeType":"UserDefinedTypeName","pathNode":{"id":75471,"name":"Storage","nameLocations":["3903:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3903:7:159"},"referencedDeclaration":73470,"src":"3903:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75476,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75474,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"3928:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3928:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3903:38:159"},{"expression":{"expression":{"id":75477,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"3958:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"3958:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75470,"id":75479,"nodeType":"Return","src":"3951:20:159"}]},"baseFunctions":[73610],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"3854:6:159","parameters":{"id":75467,"nodeType":"ParameterList","parameters":[],"src":"3860:2:159"},"returnParameters":{"id":75470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75481,"src":"3884:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75468,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3883:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75501,"nodeType":"FunctionDefinition","src":"3984:143:159","nodes":[],"body":{"id":75500,"nodeType":"Block","src":"4039:88:159","nodes":[],"statements":[{"assignments":[75490],"declarations":[{"constant":false,"id":75490,"mutability":"mutable","name":"router","nameLocation":"4065:6:159","nodeType":"VariableDeclaration","scope":75500,"src":"4049:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75489,"nodeType":"UserDefinedTypeName","pathNode":{"id":75488,"name":"Storage","nameLocations":["4049:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4049:7:159"},"referencedDeclaration":73470,"src":"4049:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75493,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75491,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4074:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4074:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4049:38:159"},{"expression":{"id":75498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75494,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"4097:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4104:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"4097:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75497,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75483,"src":"4113:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4097:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75499,"nodeType":"ExpressionStatement","src":"4097:23:159"}]},"baseFunctions":[73615],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":75486,"kind":"modifierInvocation","modifierName":{"id":75485,"name":"onlyOwner","nameLocations":["4029:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"4029:9:159"},"nodeType":"ModifierInvocation","src":"4029:9:159"}],"name":"setMirror","nameLocation":"3993:9:159","parameters":{"id":75484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75483,"mutability":"mutable","name":"_mirror","nameLocation":"4011:7:159","nodeType":"VariableDeclaration","scope":75501,"src":"4003:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75482,"name":"address","nodeType":"ElementaryTypeName","src":"4003:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4002:17:159"},"returnParameters":{"id":75487,"nodeType":"ParameterList","parameters":[],"src":"4039:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75516,"nodeType":"FunctionDefinition","src":"4183:159:159","nodes":[],"body":{"id":75515,"nodeType":"Block","src":"4244:98:159","nodes":[],"statements":[{"assignments":[75508],"declarations":[{"constant":false,"id":75508,"mutability":"mutable","name":"router","nameLocation":"4270:6:159","nodeType":"VariableDeclaration","scope":75515,"src":"4254:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75507,"nodeType":"UserDefinedTypeName","pathNode":{"id":75506,"name":"Storage","nameLocations":["4254:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4254:7:159"},"referencedDeclaration":73470,"src":"4254:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75511,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75509,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4279:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4279:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4254:38:159"},{"expression":{"expression":{"id":75512,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75508,"src":"4309:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4316:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"4309:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75505,"id":75514,"nodeType":"Return","src":"4302:33:159"}]},"baseFunctions":[73620],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4192:19:159","parameters":{"id":75502,"nodeType":"ParameterList","parameters":[],"src":"4211:2:159"},"returnParameters":{"id":75505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75516,"src":"4235:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75503,"name":"uint256","nodeType":"ElementaryTypeName","src":"4235:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4234:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75536,"nodeType":"FunctionDefinition","src":"4348:159:159","nodes":[],"body":{"id":75535,"nodeType":"Block","src":"4415:92:159","nodes":[],"statements":[{"assignments":[75526],"declarations":[{"constant":false,"id":75526,"mutability":"mutable","name":"router","nameLocation":"4441:6:159","nodeType":"VariableDeclaration","scope":75535,"src":"4425:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75525,"nodeType":"UserDefinedTypeName","pathNode":{"id":75524,"name":"Storage","nameLocations":["4425:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4425:7:159"},"referencedDeclaration":73470,"src":"4425:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75527,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4450:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4425:38:159"},{"expression":{"baseExpression":{"expression":{"id":75530,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75526,"src":"4480:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4487:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"4480:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75533,"indexExpression":{"id":75532,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75518,"src":"4493:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4480:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":75523,"id":75534,"nodeType":"Return","src":"4473:27:159"}]},"baseFunctions":[73628],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4357:9:159","parameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"codeId","nameLocation":"4375:6:159","nodeType":"VariableDeclaration","scope":75536,"src":"4367:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4367:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4366:16:159"},"returnParameters":{"id":75523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75536,"src":"4404:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"typeName":{"id":75521,"nodeType":"UserDefinedTypeName","pathNode":{"id":75520,"name":"CodeState","nameLocations":["4404:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":73474,"src":"4404:9:159"},"referencedDeclaration":73474,"src":"4404:9:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4403:11:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75551,"nodeType":"FunctionDefinition","src":"4513:147:159","nodes":[],"body":{"id":75550,"nodeType":"Block","src":"4568:92:159","nodes":[],"statements":[{"assignments":[75543],"declarations":[{"constant":false,"id":75543,"mutability":"mutable","name":"router","nameLocation":"4594:6:159","nodeType":"VariableDeclaration","scope":75550,"src":"4578:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75542,"nodeType":"UserDefinedTypeName","pathNode":{"id":75541,"name":"Storage","nameLocations":["4578:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4578:7:159"},"referencedDeclaration":73470,"src":"4578:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75546,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75544,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4603:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4603:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4578:38:159"},{"expression":{"expression":{"id":75547,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"4633:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"4633:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75540,"id":75549,"nodeType":"Return","src":"4626:27:159"}]},"baseFunctions":[73633],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4522:13:159","parameters":{"id":75537,"nodeType":"ParameterList","parameters":[],"src":"4535:2:159"},"returnParameters":{"id":75540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75551,"src":"4559:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75538,"name":"uint256","nodeType":"ElementaryTypeName","src":"4559:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4558:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75570,"nodeType":"FunctionDefinition","src":"4666:166:159","nodes":[],"body":{"id":75569,"nodeType":"Block","src":"4736:96:159","nodes":[],"statements":[{"assignments":[75560],"declarations":[{"constant":false,"id":75560,"mutability":"mutable","name":"router","nameLocation":"4762:6:159","nodeType":"VariableDeclaration","scope":75569,"src":"4746:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75559,"nodeType":"UserDefinedTypeName","pathNode":{"id":75558,"name":"Storage","nameLocations":["4746:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4746:7:159"},"referencedDeclaration":73470,"src":"4746:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75563,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75561,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4771:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4746:38:159"},{"expression":{"baseExpression":{"expression":{"id":75564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75560,"src":"4801:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4808:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"4801:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":75567,"indexExpression":{"id":75566,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"4817:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4801:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75557,"id":75568,"nodeType":"Return","src":"4794:31:159"}]},"baseFunctions":[73641],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4675:13:159","parameters":{"id":75554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75553,"mutability":"mutable","name":"program","nameLocation":"4697:7:159","nodeType":"VariableDeclaration","scope":75570,"src":"4689:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75552,"name":"address","nodeType":"ElementaryTypeName","src":"4689:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4688:17:159"},"returnParameters":{"id":75557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75570,"src":"4727:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4727:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4726:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75585,"nodeType":"FunctionDefinition","src":"4883:173:159","nodes":[],"body":{"id":75584,"nodeType":"Block","src":"4951:105:159","nodes":[],"statements":[{"assignments":[75577],"declarations":[{"constant":false,"id":75577,"mutability":"mutable","name":"router","nameLocation":"4977:6:159","nodeType":"VariableDeclaration","scope":75584,"src":"4961:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75576,"nodeType":"UserDefinedTypeName","pathNode":{"id":75575,"name":"Storage","nameLocations":["4961:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4961:7:159"},"referencedDeclaration":73470,"src":"4961:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75580,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75578,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"4986:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4986:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4961:38:159"},{"expression":{"expression":{"id":75581,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75577,"src":"5016:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5023:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"5016:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75574,"id":75583,"nodeType":"Return","src":"5009:40:159"}]},"baseFunctions":[73646],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"4892:26:159","parameters":{"id":75571,"nodeType":"ParameterList","parameters":[],"src":"4918:2:159"},"returnParameters":{"id":75574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75585,"src":"4942:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75572,"name":"uint256","nodeType":"ElementaryTypeName","src":"4942:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4941:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75602,"nodeType":"FunctionDefinition","src":"5062:204:159","nodes":[],"body":{"id":75601,"nodeType":"Block","src":"5123:143:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75590,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"5195:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5195:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75592,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"5215:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5195:48:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":75595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5246:4:159","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5195:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5194:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":75598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5254:5:159","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5194:65:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75589,"id":75600,"nodeType":"Return","src":"5187:72:159"}]},"baseFunctions":[73651],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"5071:19:159","parameters":{"id":75586,"nodeType":"ParameterList","parameters":[],"src":"5090:2:159"},"returnParameters":{"id":75589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75602,"src":"5114:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75587,"name":"uint256","nodeType":"ElementaryTypeName","src":"5114:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5113:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75618,"nodeType":"FunctionDefinition","src":"5272:157:159","nodes":[],"body":{"id":75617,"nodeType":"Block","src":"5329:100:159","nodes":[],"statements":[{"assignments":[75609],"declarations":[{"constant":false,"id":75609,"mutability":"mutable","name":"router","nameLocation":"5355:6:159","nodeType":"VariableDeclaration","scope":75617,"src":"5339:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75608,"nodeType":"UserDefinedTypeName","pathNode":{"id":75607,"name":"Storage","nameLocations":["5339:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5339:7:159"},"referencedDeclaration":73470,"src":"5339:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75610,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"5364:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5364:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5339:38:159"},{"expression":{"expression":{"expression":{"id":75613,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75609,"src":"5394:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5401:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5394:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":75615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5416:6:159","memberName":"length","nodeType":"MemberAccess","src":"5394:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75606,"id":75616,"nodeType":"Return","src":"5387:35:159"}]},"baseFunctions":[73656],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5281:15:159","parameters":{"id":75603,"nodeType":"ParameterList","parameters":[],"src":"5296:2:159"},"returnParameters":{"id":75606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75618,"src":"5320:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75604,"name":"uint256","nodeType":"ElementaryTypeName","src":"5320:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5319:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75637,"nodeType":"FunctionDefinition","src":"5435:171:159","nodes":[],"body":{"id":75636,"nodeType":"Block","src":"5506:100:159","nodes":[],"statements":[{"assignments":[75627],"declarations":[{"constant":false,"id":75627,"mutability":"mutable","name":"router","nameLocation":"5532:6:159","nodeType":"VariableDeclaration","scope":75636,"src":"5516:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75626,"nodeType":"UserDefinedTypeName","pathNode":{"id":75625,"name":"Storage","nameLocations":["5516:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5516:7:159"},"referencedDeclaration":73470,"src":"5516:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75630,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75628,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"5541:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5516:38:159"},{"expression":{"baseExpression":{"expression":{"id":75631,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75627,"src":"5571:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5578:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"5571:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75634,"indexExpression":{"id":75633,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75620,"src":"5589:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5571:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75624,"id":75635,"nodeType":"Return","src":"5564:35:159"}]},"baseFunctions":[73663],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5444:15:159","parameters":{"id":75621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75620,"mutability":"mutable","name":"validator","nameLocation":"5468:9:159","nodeType":"VariableDeclaration","scope":75637,"src":"5460:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75619,"name":"address","nodeType":"ElementaryTypeName","src":"5460:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5459:19:159"},"returnParameters":{"id":75624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75637,"src":"5500:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75622,"name":"bool","nodeType":"ElementaryTypeName","src":"5500:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5499:6:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75653,"nodeType":"FunctionDefinition","src":"5612:154:159","nodes":[],"body":{"id":75652,"nodeType":"Block","src":"5673:93:159","nodes":[],"statements":[{"assignments":[75645],"declarations":[{"constant":false,"id":75645,"mutability":"mutable","name":"router","nameLocation":"5699:6:159","nodeType":"VariableDeclaration","scope":75652,"src":"5683:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75644,"nodeType":"UserDefinedTypeName","pathNode":{"id":75643,"name":"Storage","nameLocations":["5683:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5683:7:159"},"referencedDeclaration":73470,"src":"5683:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75648,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75646,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"5708:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5708:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5683:38:159"},{"expression":{"expression":{"id":75649,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"5738:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5745:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5738:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":75642,"id":75651,"nodeType":"Return","src":"5731:28:159"}]},"baseFunctions":[73669],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5621:10:159","parameters":{"id":75638,"nodeType":"ParameterList","parameters":[],"src":"5631:2:159"},"returnParameters":{"id":75642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75653,"src":"5655:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75639,"name":"address","nodeType":"ElementaryTypeName","src":"5655:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75640,"nodeType":"ArrayTypeName","src":"5655:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5654:18:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75672,"nodeType":"FunctionDefinition","src":"5829:209:159","nodes":[],"body":{"id":75671,"nodeType":"Block","src":"5917:121:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75661,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76810,"src":"5927:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5927:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75663,"nodeType":"ExpressionStatement","src":"5927:18:159"},{"expression":{"arguments":[{"id":75665,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75656,"src":"5970:22:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":75664,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76865,"src":"5955:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75667,"nodeType":"ExpressionStatement","src":"5955:38:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75668,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"6009:20:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75670,"nodeType":"EmitStatement","src":"6004:27:159"}]},"baseFunctions":[73675],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":75659,"kind":"modifierInvocation","modifierName":{"id":75658,"name":"onlyOwner","nameLocations":["5907:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"5907:9:159"},"nodeType":"ModifierInvocation","src":"5907:9:159"}],"name":"updateValidators","nameLocation":"5838:16:159","parameters":{"id":75657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75656,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"5874:22:159","nodeType":"VariableDeclaration","scope":75672,"src":"5855:41:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75654,"name":"address","nodeType":"ElementaryTypeName","src":"5855:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75655,"nodeType":"ArrayTypeName","src":"5855:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5854:43:159"},"returnParameters":{"id":75660,"nodeType":"ParameterList","parameters":[],"src":"5917:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75687,"nodeType":"FunctionDefinition","src":"6092:140:159","nodes":[],"body":{"id":75686,"nodeType":"Block","src":"6143:89:159","nodes":[],"statements":[{"assignments":[75679],"declarations":[{"constant":false,"id":75679,"mutability":"mutable","name":"router","nameLocation":"6169:6:159","nodeType":"VariableDeclaration","scope":75686,"src":"6153:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75678,"nodeType":"UserDefinedTypeName","pathNode":{"id":75677,"name":"Storage","nameLocations":["6153:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6153:7:159"},"referencedDeclaration":73470,"src":"6153:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75682,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75680,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"6178:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6153:38:159"},{"expression":{"expression":{"id":75683,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75679,"src":"6208:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6215:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6208:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75676,"id":75685,"nodeType":"Return","src":"6201:24:159"}]},"baseFunctions":[73680],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6101:10:159","parameters":{"id":75673,"nodeType":"ParameterList","parameters":[],"src":"6111:2:159"},"returnParameters":{"id":75676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75687,"src":"6135:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75674,"name":"uint64","nodeType":"ElementaryTypeName","src":"6135:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6134:8:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75711,"nodeType":"FunctionDefinition","src":"6238:204:159","nodes":[],"body":{"id":75710,"nodeType":"Block","src":"6300:142:159","nodes":[],"statements":[{"assignments":[75696],"declarations":[{"constant":false,"id":75696,"mutability":"mutable","name":"router","nameLocation":"6326:6:159","nodeType":"VariableDeclaration","scope":75710,"src":"6310:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75695,"nodeType":"UserDefinedTypeName","pathNode":{"id":75694,"name":"Storage","nameLocations":["6310:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6310:7:159"},"referencedDeclaration":73470,"src":"6310:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75699,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75697,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"6335:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6335:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6310:38:159"},{"expression":{"id":75704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75700,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75696,"src":"6358:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6365:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6358:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75703,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75689,"src":"6378:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6358:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75705,"nodeType":"ExpressionStatement","src":"6358:31:159"},{"eventCall":{"arguments":[{"id":75707,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75689,"src":"6423:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75706,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"6405:17:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":75708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6405:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75709,"nodeType":"EmitStatement","src":"6400:35:159"}]},"baseFunctions":[73685],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":75692,"kind":"modifierInvocation","modifierName":{"id":75691,"name":"onlyOwner","nameLocations":["6290:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6290:9:159"},"nodeType":"ModifierInvocation","src":"6290:9:159"}],"name":"setBaseWeight","nameLocation":"6247:13:159","parameters":{"id":75690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75689,"mutability":"mutable","name":"_baseWeight","nameLocation":"6268:11:159","nodeType":"VariableDeclaration","scope":75711,"src":"6261:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75688,"name":"uint64","nodeType":"ElementaryTypeName","src":"6261:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6260:20:159"},"returnParameters":{"id":75693,"nodeType":"ParameterList","parameters":[],"src":"6300:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75726,"nodeType":"FunctionDefinition","src":"6448:149:159","nodes":[],"body":{"id":75725,"nodeType":"Block","src":"6504:93:159","nodes":[],"statements":[{"assignments":[75718],"declarations":[{"constant":false,"id":75718,"mutability":"mutable","name":"router","nameLocation":"6530:6:159","nodeType":"VariableDeclaration","scope":75725,"src":"6514:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75717,"nodeType":"UserDefinedTypeName","pathNode":{"id":75716,"name":"Storage","nameLocations":["6514:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6514:7:159"},"referencedDeclaration":73470,"src":"6514:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75721,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75719,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"6539:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6514:38:159"},{"expression":{"expression":{"id":75722,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75718,"src":"6569:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6576:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6569:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75715,"id":75724,"nodeType":"Return","src":"6562:28:159"}]},"baseFunctions":[73690],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6457:14:159","parameters":{"id":75712,"nodeType":"ParameterList","parameters":[],"src":"6471:2:159"},"returnParameters":{"id":75715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75726,"src":"6495:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75713,"name":"uint128","nodeType":"ElementaryTypeName","src":"6495:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6494:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75750,"nodeType":"FunctionDefinition","src":"6603:229:159","nodes":[],"body":{"id":75749,"nodeType":"Block","src":"6674:158:159","nodes":[],"statements":[{"assignments":[75735],"declarations":[{"constant":false,"id":75735,"mutability":"mutable","name":"router","nameLocation":"6700:6:159","nodeType":"VariableDeclaration","scope":75749,"src":"6684:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75734,"nodeType":"UserDefinedTypeName","pathNode":{"id":75733,"name":"Storage","nameLocations":["6684:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6684:7:159"},"referencedDeclaration":73470,"src":"6684:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75738,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75736,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"6709:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6709:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6684:38:159"},{"expression":{"id":75743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75739,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75735,"src":"6732:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6739:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6732:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75742,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75728,"src":"6756:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6732:39:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75744,"nodeType":"ExpressionStatement","src":"6732:39:159"},{"eventCall":{"arguments":[{"id":75746,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75728,"src":"6809:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75745,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"6787:21:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":75747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6787:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75748,"nodeType":"EmitStatement","src":"6782:43:159"}]},"baseFunctions":[73695],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":75731,"kind":"modifierInvocation","modifierName":{"id":75730,"name":"onlyOwner","nameLocations":["6664:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6664:9:159"},"nodeType":"ModifierInvocation","src":"6664:9:159"}],"name":"setValuePerWeight","nameLocation":"6612:17:159","parameters":{"id":75729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75728,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6638:15:159","nodeType":"VariableDeclaration","scope":75750,"src":"6630:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75727,"name":"uint128","nodeType":"ElementaryTypeName","src":"6630:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6629:25:159"},"returnParameters":{"id":75732,"nodeType":"ParameterList","parameters":[],"src":"6674:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75765,"nodeType":"FunctionDefinition","src":"6838:113:159","nodes":[],"body":{"id":75764,"nodeType":"Block","src":"6887:64:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75757,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"6912:10:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":75758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6912:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6904:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":75755,"name":"uint128","nodeType":"ElementaryTypeName","src":"6904:7:159","typeDescriptions":{}}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6904:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75760,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75726,"src":"6928:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":75761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6928:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6904:40:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75754,"id":75763,"nodeType":"Return","src":"6897:47:159"}]},"baseFunctions":[73700],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"6847:7:159","parameters":{"id":75751,"nodeType":"ParameterList","parameters":[],"src":"6854:2:159"},"returnParameters":{"id":75754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75765,"src":"6878:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75752,"name":"uint128","nodeType":"ElementaryTypeName","src":"6878:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6877:9:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75817,"nodeType":"FunctionDefinition","src":"6987:453:159","nodes":[],"body":{"id":75816,"nodeType":"Block","src":"7063:377:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75773,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75769,"src":"7081:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7095:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7081:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":75777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7109:1:159","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":75776,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7100:8:159","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7115:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7100:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7081:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":75782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7118:30:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":75772,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7073:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7073:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75784,"nodeType":"ExpressionStatement","src":"7073:76:159"},{"assignments":[75787],"declarations":[{"constant":false,"id":75787,"mutability":"mutable","name":"router","nameLocation":"7176:6:159","nodeType":"VariableDeclaration","scope":75816,"src":"7160:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75786,"nodeType":"UserDefinedTypeName","pathNode":{"id":75785,"name":"Storage","nameLocations":["7160:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"7160:7:159"},"referencedDeclaration":73470,"src":"7160:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75790,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75788,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"7185:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7160:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"7217:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7224:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7217:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75795,"indexExpression":{"id":75794,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75767,"src":"7230:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7217:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75796,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7241:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7251:7:159","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":73471,"src":"7241:17:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7217:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":75799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7260:50:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":75791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7209:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7209:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75801,"nodeType":"ExpressionStatement","src":"7209:102:159"},{"expression":{"id":75809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75802,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"7322:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7329:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7322:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75806,"indexExpression":{"id":75804,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75767,"src":"7335:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7322:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75807,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7345:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7355:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"7345:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7322:52:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75810,"nodeType":"ExpressionStatement","src":"7322:52:159"},{"eventCall":{"arguments":[{"id":75812,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75767,"src":"7414:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75813,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75769,"src":"7422:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75811,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"7390:23:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":75814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7390:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75815,"nodeType":"EmitStatement","src":"7385:48:159"}]},"baseFunctions":[73707],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"6996:21:159","parameters":{"id":75770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75767,"mutability":"mutable","name":"codeId","nameLocation":"7026:6:159","nodeType":"VariableDeclaration","scope":75817,"src":"7018:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7018:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75769,"mutability":"mutable","name":"blobTxHash","nameLocation":"7042:10:159","nodeType":"VariableDeclaration","scope":75817,"src":"7034:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7034:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7017:36:159"},"returnParameters":{"id":75771,"nodeType":"ParameterList","parameters":[],"src":"7063:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75854,"nodeType":"FunctionDefinition","src":"7446:381:159","nodes":[],"body":{"id":75853,"nodeType":"Block","src":"7602:225:159","nodes":[],"statements":[{"assignments":[75831,75833],"declarations":[{"constant":false,"id":75831,"mutability":"mutable","name":"actorId","nameLocation":"7621:7:159","nodeType":"VariableDeclaration","scope":75853,"src":"7613:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75830,"name":"address","nodeType":"ElementaryTypeName","src":"7613:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75833,"mutability":"mutable","name":"executableBalance","nameLocation":"7638:17:159","nodeType":"VariableDeclaration","scope":75853,"src":"7630:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75832,"name":"uint128","nodeType":"ElementaryTypeName","src":"7630:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75839,"initialValue":{"arguments":[{"id":75835,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75819,"src":"7688:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75836,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75821,"src":"7696:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75837,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75825,"src":"7702:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75834,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"src":"7659:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7659:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7612:97:159"},{"expression":{"arguments":[{"expression":{"id":75844,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7749:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7752:6:159","memberName":"origin","nodeType":"MemberAccess","src":"7749:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75846,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75823,"src":"7760:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75847,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75825,"src":"7769:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75848,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75833,"src":"7777:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":75841,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75831,"src":"7728:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75840,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"7720:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7720:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7737:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"7720:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7720:75:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75850,"nodeType":"ExpressionStatement","src":"7720:75:159"},{"expression":{"id":75851,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75831,"src":"7813:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75829,"id":75852,"nodeType":"Return","src":"7806:14:159"}]},"baseFunctions":[73720],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7455:13:159","parameters":{"id":75826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75819,"mutability":"mutable","name":"codeId","nameLocation":"7477:6:159","nodeType":"VariableDeclaration","scope":75854,"src":"7469:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7469:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75821,"mutability":"mutable","name":"salt","nameLocation":"7493:4:159","nodeType":"VariableDeclaration","scope":75854,"src":"7485:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7485:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75823,"mutability":"mutable","name":"payload","nameLocation":"7514:7:159","nodeType":"VariableDeclaration","scope":75854,"src":"7499:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75822,"name":"bytes","nodeType":"ElementaryTypeName","src":"7499:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75825,"mutability":"mutable","name":"_value","nameLocation":"7531:6:159","nodeType":"VariableDeclaration","scope":75854,"src":"7523:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75824,"name":"uint128","nodeType":"ElementaryTypeName","src":"7523:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7468:70:159"},"returnParameters":{"id":75829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75854,"src":"7589:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75827,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7588:9:159"},"scope":76879,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75912,"nodeType":"FunctionDefinition","src":"7833:596:159","nodes":[],"body":{"id":75911,"nodeType":"Block","src":"8049:380:159","nodes":[],"statements":[{"assignments":[75870,75872],"declarations":[{"constant":false,"id":75870,"mutability":"mutable","name":"actorId","nameLocation":"8068:7:159","nodeType":"VariableDeclaration","scope":75911,"src":"8060:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75869,"name":"address","nodeType":"ElementaryTypeName","src":"8060:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75872,"mutability":"mutable","name":"executableBalance","nameLocation":"8085:17:159","nodeType":"VariableDeclaration","scope":75911,"src":"8077:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75871,"name":"uint128","nodeType":"ElementaryTypeName","src":"8077:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75878,"initialValue":{"arguments":[{"id":75874,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75858,"src":"8135:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75875,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"8143:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75876,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75864,"src":"8149:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75873,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"src":"8106:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8106:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"8059:97:159"},{"assignments":[75881],"declarations":[{"constant":false,"id":75881,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8175:14:159","nodeType":"VariableDeclaration","scope":75911,"src":"8167:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":75880,"nodeType":"UserDefinedTypeName","pathNode":{"id":75879,"name":"IMirror","nameLocations":["8167:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"8167:7:159"},"referencedDeclaration":73387,"src":"8167:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":75885,"initialValue":{"arguments":[{"id":75883,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75870,"src":"8200:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75882,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"8192:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8167:41:159"},{"expression":{"arguments":[{"id":75889,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"8248:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":75893,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75858,"src":"8298:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75894,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"8306:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75891,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8281:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8285:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"8281:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75890,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8271:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8271:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75886,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75881,"src":"8219:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8234:13:159","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":73375,"src":"8219:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":75897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8219:94:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75898,"nodeType":"ExpressionStatement","src":"8219:94:159"},{"expression":{"arguments":[{"expression":{"id":75902,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8351:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8354:6:159","memberName":"origin","nodeType":"MemberAccess","src":"8351:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75904,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"8362:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75905,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75864,"src":"8371:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75906,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75872,"src":"8379:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75899,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75881,"src":"8324:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8339:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"8324:26:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8324:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75908,"nodeType":"ExpressionStatement","src":"8324:73:159"},{"expression":{"id":75909,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75870,"src":"8415:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75868,"id":75910,"nodeType":"Return","src":"8408:14:159"}]},"baseFunctions":[73735],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"7842:24:159","parameters":{"id":75865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75856,"mutability":"mutable","name":"decoderImplementation","nameLocation":"7884:21:159","nodeType":"VariableDeclaration","scope":75912,"src":"7876:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75855,"name":"address","nodeType":"ElementaryTypeName","src":"7876:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75858,"mutability":"mutable","name":"codeId","nameLocation":"7923:6:159","nodeType":"VariableDeclaration","scope":75912,"src":"7915:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7915:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75860,"mutability":"mutable","name":"salt","nameLocation":"7947:4:159","nodeType":"VariableDeclaration","scope":75912,"src":"7939:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7939:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75862,"mutability":"mutable","name":"payload","nameLocation":"7976:7:159","nodeType":"VariableDeclaration","scope":75912,"src":"7961:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75861,"name":"bytes","nodeType":"ElementaryTypeName","src":"7961:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75864,"mutability":"mutable","name":"_value","nameLocation":"8001:6:159","nodeType":"VariableDeclaration","scope":75912,"src":"7993:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75863,"name":"uint128","nodeType":"ElementaryTypeName","src":"7993:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7866:147:159"},"returnParameters":{"id":75868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75912,"src":"8040:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75866,"name":"address","nodeType":"ElementaryTypeName","src":"8040:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8039:9:159"},"scope":76879,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76025,"nodeType":"FunctionDefinition","src":"8435:1117:159","nodes":[],"body":{"id":76024,"nodeType":"Block","src":"8542:1010:159","nodes":[],"statements":[{"assignments":[75924],"declarations":[{"constant":false,"id":75924,"mutability":"mutable","name":"router","nameLocation":"8568:6:159","nodeType":"VariableDeclaration","scope":76024,"src":"8552:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75923,"nodeType":"UserDefinedTypeName","pathNode":{"id":75922,"name":"Storage","nameLocations":["8552:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"8552:7:159"},"referencedDeclaration":73470,"src":"8552:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75927,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75925,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"8577:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8552:38:159"},{"assignments":[75929],"declarations":[{"constant":false,"id":75929,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8614:21:159","nodeType":"VariableDeclaration","scope":76024,"src":"8601:34:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75928,"name":"bytes","nodeType":"ElementaryTypeName","src":"8601:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75930,"nodeType":"VariableDeclarationStatement","src":"8601:34:159"},{"body":{"id":76015,"nodeType":"Block","src":"8704:766:159","statements":[{"assignments":[75944],"declarations":[{"constant":false,"id":75944,"mutability":"mutable","name":"codeCommitment","nameLocation":"8742:14:159","nodeType":"VariableDeclaration","scope":76015,"src":"8718:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":75943,"nodeType":"UserDefinedTypeName","pathNode":{"id":75942,"name":"CodeCommitment","nameLocations":["8718:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8718:14:159"},"referencedDeclaration":73479,"src":"8718:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":75948,"initialValue":{"baseExpression":{"id":75945,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"8759:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75947,"indexExpression":{"id":75946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75932,"src":"8780:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8759:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8718:64:159"},{"assignments":[75950],"declarations":[{"constant":false,"id":75950,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8805:18:159","nodeType":"VariableDeclaration","scope":76015,"src":"8797:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75949,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8797:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75954,"initialValue":{"arguments":[{"id":75952,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75944,"src":"8846:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":75951,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76736,"src":"8826:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$73479_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":75953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8826:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8797:64:159"},{"expression":{"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75955,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75929,"src":"8876:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75959,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75929,"src":"8913:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":75960,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"8936:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8900:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75956,"name":"bytes","nodeType":"ElementaryTypeName","src":"8900:5:159","typeDescriptions":{}}},"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8906:6:159","memberName":"concat","nodeType":"MemberAccess","src":"8900:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8900:55:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8876:79:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75963,"nodeType":"ExpressionStatement","src":"8876:79:159"},{"assignments":[75965],"declarations":[{"constant":false,"id":75965,"mutability":"mutable","name":"codeId","nameLocation":"8978:6:159","nodeType":"VariableDeclaration","scope":76015,"src":"8970:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8970:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75968,"initialValue":{"expression":{"id":75966,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75944,"src":"8987:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"8987:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8970:34:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75970,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75924,"src":"9026:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9026:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75973,"indexExpression":{"id":75972,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"9039:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9026:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75974,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"9050:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9060:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"9050:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"9026:53:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":75977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9081:41:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":75969,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9018:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75979,"nodeType":"ExpressionStatement","src":"9018:105:159"},{"condition":{"expression":{"id":75980,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75944,"src":"9142:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9157:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"9142:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76013,"nodeType":"Block","src":"9345:115:159","statements":[{"expression":{"id":76006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9363:27:159","subExpression":{"baseExpression":{"expression":{"id":76002,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75924,"src":"9370:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9377:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9370:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76005,"indexExpression":{"id":76004,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"9383:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9370:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76007,"nodeType":"ExpressionStatement","src":"9363:27:159"},{"eventCall":{"arguments":[{"id":76009,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"9431:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":76010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9439:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76008,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73552,"src":"9414:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":76011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9414:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76012,"nodeType":"EmitStatement","src":"9409:36:159"}]},"id":76014,"nodeType":"IfStatement","src":"9138:322:159","trueBody":{"id":76001,"nodeType":"Block","src":"9164:175:159","statements":[{"expression":{"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75982,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75924,"src":"9182:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9189:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9182:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75986,"indexExpression":{"id":75984,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"9195:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9182:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75987,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"9205:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9215:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"9205:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"9182:42:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75990,"nodeType":"ExpressionStatement","src":"9182:42:159"},{"expression":{"id":75994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9242:28:159","subExpression":{"expression":{"id":75991,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75924,"src":"9242:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9249:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9242:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75995,"nodeType":"ExpressionStatement","src":"9242:28:159"},{"eventCall":{"arguments":[{"id":75997,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"9311:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":75998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9319:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75996,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73552,"src":"9294:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":75999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9294:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76000,"nodeType":"EmitStatement","src":"9289:35:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75932,"src":"8666:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75936,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"8670:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8691:6:159","memberName":"length","nodeType":"MemberAccess","src":"8670:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8666:31:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76016,"initializationExpression":{"assignments":[75932],"declarations":[{"constant":false,"id":75932,"mutability":"mutable","name":"i","nameLocation":"8659:1:159","nodeType":"VariableDeclaration","scope":76016,"src":"8651:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75931,"name":"uint256","nodeType":"ElementaryTypeName","src":"8651:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75934,"initialValue":{"hexValue":"30","id":75933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8651:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8699:3:159","subExpression":{"id":75939,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75932,"src":"8699:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75941,"nodeType":"ExpressionStatement","src":"8699:3:159"},"nodeType":"ForStatement","src":"8646:824:159"},{"expression":{"arguments":[{"arguments":[{"id":76019,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75929,"src":"9510:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76018,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9500:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76021,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75919,"src":"9534:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76017,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76271,"src":"9480:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9480:65:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76023,"nodeType":"ExpressionStatement","src":"9480:65:159"}]},"baseFunctions":[73745],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8444:11:159","parameters":{"id":75920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75916,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8482:20:159","nodeType":"VariableDeclaration","scope":76025,"src":"8456:46:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":75914,"nodeType":"UserDefinedTypeName","pathNode":{"id":75913,"name":"CodeCommitment","nameLocations":["8456:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8456:14:159"},"referencedDeclaration":73479,"src":"8456:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":75915,"nodeType":"ArrayTypeName","src":"8456:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":75919,"mutability":"mutable","name":"signatures","nameLocation":"8521:10:159","nodeType":"VariableDeclaration","scope":76025,"src":"8504:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":75917,"name":"bytes","nodeType":"ElementaryTypeName","src":"8504:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":75918,"nodeType":"ArrayTypeName","src":"8504:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8455:77:159"},"returnParameters":{"id":75921,"nodeType":"ParameterList","parameters":[],"src":"8542:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76083,"nodeType":"FunctionDefinition","src":"9558:604:159","nodes":[],"body":{"id":76082,"nodeType":"Block","src":"9701:461:159","nodes":[],"statements":[{"assignments":[76038],"declarations":[{"constant":false,"id":76038,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9724:22:159","nodeType":"VariableDeclaration","scope":76082,"src":"9711:35:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76037,"name":"bytes","nodeType":"ElementaryTypeName","src":"9711:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76039,"nodeType":"VariableDeclarationStatement","src":"9711:35:159"},{"body":{"id":76073,"nodeType":"Block","src":"9816:263:159","statements":[{"assignments":[76053],"declarations":[{"constant":false,"id":76053,"mutability":"mutable","name":"blockCommitment","nameLocation":"9855:15:159","nodeType":"VariableDeclaration","scope":76073,"src":"9830:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76052,"nodeType":"UserDefinedTypeName","pathNode":{"id":76051,"name":"BlockCommitment","nameLocations":["9830:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73492,"src":"9830:15:159"},"referencedDeclaration":73492,"src":"9830:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":76057,"initialValue":{"baseExpression":{"id":76054,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"9873:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73492_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76056,"indexExpression":{"id":76055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76041,"src":"9895:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9873:24:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"9830:67:159"},{"assignments":[76059],"declarations":[{"constant":false,"id":76059,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"9920:19:159","nodeType":"VariableDeclaration","scope":76073,"src":"9912:27:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9912:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76063,"initialValue":{"arguments":[{"id":76061,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"9955:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":76060,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76369,"src":"9942:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$73492_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":76062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9942:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9912:59:159"},{"expression":{"id":76071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76064,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76038,"src":"9986:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76068,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76038,"src":"10024:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76069,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76059,"src":"10048:19:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10011:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76065,"name":"bytes","nodeType":"ElementaryTypeName","src":"10011:5:159","typeDescriptions":{}}},"id":76067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10017:6:159","memberName":"concat","nodeType":"MemberAccess","src":"10011:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9986:82:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76072,"nodeType":"ExpressionStatement","src":"9986:82:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76041,"src":"9777:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76045,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"9781:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73492_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9803:6:159","memberName":"length","nodeType":"MemberAccess","src":"9781:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9777:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76074,"initializationExpression":{"assignments":[76041],"declarations":[{"constant":false,"id":76041,"mutability":"mutable","name":"i","nameLocation":"9770:1:159","nodeType":"VariableDeclaration","scope":76074,"src":"9762:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76040,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76043,"initialValue":{"hexValue":"30","id":76042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9774:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9762:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9811:3:159","subExpression":{"id":76048,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76041,"src":"9811:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76050,"nodeType":"ExpressionStatement","src":"9811:3:159"},"nodeType":"ForStatement","src":"9757:322:159"},{"expression":{"arguments":[{"arguments":[{"id":76077,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76038,"src":"10119:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76076,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10109:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10109:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76079,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76032,"src":"10144:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76075,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76271,"src":"10089:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10089:66:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76081,"nodeType":"ExpressionStatement","src":"10089:66:159"}]},"baseFunctions":[73755],"functionSelector":"01b1d156","implemented":true,"kind":"function","modifiers":[{"id":76035,"kind":"modifierInvocation","modifierName":{"id":76034,"name":"nonReentrant","nameLocations":["9684:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":44000,"src":"9684:12:159"},"nodeType":"ModifierInvocation","src":"9684:12:159"}],"name":"commitBlocks","nameLocation":"9567:12:159","parameters":{"id":76033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76029,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9607:21:159","nodeType":"VariableDeclaration","scope":76083,"src":"9580:48:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73492_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":76027,"nodeType":"UserDefinedTypeName","pathNode":{"id":76026,"name":"BlockCommitment","nameLocations":["9580:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73492,"src":"9580:15:159"},"referencedDeclaration":73492,"src":"9580:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":76028,"nodeType":"ArrayTypeName","src":"9580:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73492_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":76032,"mutability":"mutable","name":"signatures","nameLocation":"9647:10:159","nodeType":"VariableDeclaration","scope":76083,"src":"9630:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76030,"name":"bytes","nodeType":"ElementaryTypeName","src":"9630:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76031,"nodeType":"ArrayTypeName","src":"9630:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9579:79:159"},"returnParameters":{"id":76036,"nodeType":"ParameterList","parameters":[],"src":"9701:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76182,"nodeType":"FunctionDefinition","src":"10204:1054:159","nodes":[],"body":{"id":76181,"nodeType":"Block","src":"10343:915:159","nodes":[],"statements":[{"assignments":[76098],"declarations":[{"constant":false,"id":76098,"mutability":"mutable","name":"router","nameLocation":"10369:6:159","nodeType":"VariableDeclaration","scope":76181,"src":"10353:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76097,"nodeType":"UserDefinedTypeName","pathNode":{"id":76096,"name":"Storage","nameLocations":["10353:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"10353:7:159"},"referencedDeclaration":73470,"src":"10353:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76101,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76099,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"10378:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10353:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":76109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76103,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76098,"src":"10410:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10417:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"10410:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76106,"indexExpression":{"id":76105,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"10423:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10410:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76107,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"10434:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":76108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10444:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"10434:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"10410:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10455:48:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":76102,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10402:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10402:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76112,"nodeType":"ExpressionStatement","src":"10402:102:159"},{"assignments":[76114],"declarations":[{"constant":false,"id":76114,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10523:12:159","nodeType":"VariableDeclaration","scope":76181,"src":"10515:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76113,"name":"uint128","nodeType":"ElementaryTypeName","src":"10515:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76115,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"10538:7:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":76116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10538:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10515:32:159"},{"assignments":[76119],"declarations":[{"constant":false,"id":76119,"mutability":"mutable","name":"executableBalance","nameLocation":"10625:17:159","nodeType":"VariableDeclaration","scope":76181,"src":"10617:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76118,"name":"uint128","nodeType":"ElementaryTypeName","src":"10617:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76131,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10653:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76124,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76098,"src":"10674:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10681:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"10674:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76123,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"10659:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$43166_$","typeString":"type(contract IERC20Metadata)"}},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$43166","typeString":"contract IERC20Metadata"}},"id":76127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:8:159","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":43165,"src":"10659:43:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":76128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10653:51:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10645:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76120,"name":"uint128","nodeType":"ElementaryTypeName","src":"10645:7:159","typeDescriptions":{}}},"id":76130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10645:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10617:88:159"},{"assignments":[76133],"declarations":[{"constant":false,"id":76133,"mutability":"mutable","name":"totalValue","nameLocation":"10724:10:159","nodeType":"VariableDeclaration","scope":76181,"src":"10716:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76132,"name":"uint128","nodeType":"ElementaryTypeName","src":"10716:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76139,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76134,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"10737:12:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76135,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76119,"src":"10752:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10737:32:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76137,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76089,"src":"10772:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10737:41:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10716:62:159"},{"expression":{"arguments":[{"id":76141,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"10804:10:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76140,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76769,"src":"10789:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76143,"nodeType":"ExpressionStatement","src":"10789:26:159"},{"assignments":[76145],"declarations":[{"constant":false,"id":76145,"mutability":"mutable","name":"actorId","nameLocation":"10984:7:159","nodeType":"VariableDeclaration","scope":76181,"src":"10976:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76144,"name":"address","nodeType":"ElementaryTypeName","src":"10976:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76158,"initialValue":{"arguments":[{"expression":{"id":76148,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76098,"src":"11020:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11027:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"11020:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":76153,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"11067:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76154,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76087,"src":"11075:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11050:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11054:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11050:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11050:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11040:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11040:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76146,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"10994:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":76147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11001:18:159","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"10994:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":76157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10994:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10976:106:159"},{"expression":{"id":76165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76159,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76098,"src":"11093:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"11093:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76163,"indexExpression":{"id":76161,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76145,"src":"11109:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11093:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76164,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"11120:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11093:33:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76166,"nodeType":"ExpressionStatement","src":"11093:33:159"},{"expression":{"id":76170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11136:22:159","subExpression":{"expression":{"id":76167,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76098,"src":"11136:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11143:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"11136:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76171,"nodeType":"ExpressionStatement","src":"11136:22:159"},{"eventCall":{"arguments":[{"id":76173,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76145,"src":"11189:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76174,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"11198:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76172,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73559,"src":"11174:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":76175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11174:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76176,"nodeType":"EmitStatement","src":"11169:36:159"},{"expression":{"components":[{"id":76177,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76145,"src":"11224:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76178,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76119,"src":"11233:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11223:28:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":76095,"id":76180,"nodeType":"Return","src":"11216:35:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10213:28:159","parameters":{"id":76090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76085,"mutability":"mutable","name":"codeId","nameLocation":"10250:6:159","nodeType":"VariableDeclaration","scope":76182,"src":"10242:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10242:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76087,"mutability":"mutable","name":"salt","nameLocation":"10266:4:159","nodeType":"VariableDeclaration","scope":76182,"src":"10258:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10258:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76089,"mutability":"mutable","name":"_value","nameLocation":"10280:6:159","nodeType":"VariableDeclaration","scope":76182,"src":"10272:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76088,"name":"uint128","nodeType":"ElementaryTypeName","src":"10272:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10241:46:159"},"returnParameters":{"id":76095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76182,"src":"10321:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76091,"name":"address","nodeType":"ElementaryTypeName","src":"10321:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76182,"src":"10330:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76093,"name":"uint128","nodeType":"ElementaryTypeName","src":"10330:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10320:18:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76271,"nodeType":"FunctionDefinition","src":"11264:844:159","nodes":[],"body":{"id":76270,"nodeType":"Block","src":"11353:755:159","nodes":[],"statements":[{"assignments":[76192],"declarations":[{"constant":false,"id":76192,"mutability":"mutable","name":"router","nameLocation":"11379:6:159","nodeType":"VariableDeclaration","scope":76270,"src":"11363:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76191,"nodeType":"UserDefinedTypeName","pathNode":{"id":76190,"name":"Storage","nameLocations":["11363:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"11363:7:159"},"referencedDeclaration":73470,"src":"11363:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76195,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76193,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"11388:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11388:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11363:38:159"},{"assignments":[76197],"declarations":[{"constant":false,"id":76197,"mutability":"mutable","name":"threshold","nameLocation":"11420:9:159","nodeType":"VariableDeclaration","scope":76270,"src":"11412:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76196,"name":"uint256","nodeType":"ElementaryTypeName","src":"11412:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76200,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76198,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75602,"src":"11432:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":76199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11432:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11412:41:159"},{"assignments":[76202],"declarations":[{"constant":false,"id":76202,"mutability":"mutable","name":"messageHash","nameLocation":"11472:11:159","nodeType":"VariableDeclaration","scope":76270,"src":"11464:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11464:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76213,"initialValue":{"arguments":[{"arguments":[{"id":76210,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76184,"src":"11549:8:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76208,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11532:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11536:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11532:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11532:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76205,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11494:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76879","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76879","typeString":"contract Router"}],"id":76204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11486:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76203,"name":"address","nodeType":"ElementaryTypeName","src":"11486:7:159","typeDescriptions":{}}},"id":76206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11486:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11500:31:159","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"11486:45:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11486:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11464:95:159"},{"assignments":[76215],"declarations":[{"constant":false,"id":76215,"mutability":"mutable","name":"validSignatures","nameLocation":"11577:15:159","nodeType":"VariableDeclaration","scope":76270,"src":"11569:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76214,"name":"uint256","nodeType":"ElementaryTypeName","src":"11569:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76217,"initialValue":{"hexValue":"30","id":76216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11595:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11569:27:159"},{"body":{"id":76261,"nodeType":"Block","src":"11655:368:159","statements":[{"assignments":[76230],"declarations":[{"constant":false,"id":76230,"mutability":"mutable","name":"signature","nameLocation":"11684:9:159","nodeType":"VariableDeclaration","scope":76261,"src":"11669:24:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76229,"name":"bytes","nodeType":"ElementaryTypeName","src":"11669:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76234,"initialValue":{"baseExpression":{"id":76231,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"11696:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76233,"indexExpression":{"id":76232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"11707:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11696:13:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11669:40:159"},{"assignments":[76236],"declarations":[{"constant":false,"id":76236,"mutability":"mutable","name":"validator","nameLocation":"11732:9:159","nodeType":"VariableDeclaration","scope":76261,"src":"11724:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76235,"name":"address","nodeType":"ElementaryTypeName","src":"11724:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76241,"initialValue":{"arguments":[{"id":76239,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76230,"src":"11764:9:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":76237,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"11744:11:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11756:7:159","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":45005,"src":"11744:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":76240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11744:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11724:50:159"},{"condition":{"baseExpression":{"expression":{"id":76242,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76192,"src":"11793:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11800:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"11793:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76245,"indexExpression":{"id":76244,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76236,"src":"11811:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11793:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76259,"nodeType":"Block","src":"11943:70:159","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":76255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11969:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":76256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11976:21:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":76254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11961:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11961:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76258,"nodeType":"ExpressionStatement","src":"11961:37:159"}]},"id":76260,"nodeType":"IfStatement","src":"11789:224:159","trueBody":{"id":76253,"nodeType":"Block","src":"11823:114:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11845:17:159","subExpression":{"id":76246,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76215,"src":"11847:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76248,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76197,"src":"11866:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11845:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76252,"nodeType":"IfStatement","src":"11841:82:159","trueBody":{"id":76251,"nodeType":"Block","src":"11877:46:159","statements":[{"id":76250,"nodeType":"Break","src":"11899:5:159"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"11627:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76223,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"11631:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11642:6:159","memberName":"length","nodeType":"MemberAccess","src":"11631:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11627:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76262,"initializationExpression":{"assignments":[76219],"declarations":[{"constant":false,"id":76219,"mutability":"mutable","name":"i","nameLocation":"11620:1:159","nodeType":"VariableDeclaration","scope":76262,"src":"11612:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76218,"name":"uint256","nodeType":"ElementaryTypeName","src":"11612:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76221,"initialValue":{"hexValue":"30","id":76220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11624:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11612:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11650:3:159","subExpression":{"id":76226,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"11650:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76228,"nodeType":"ExpressionStatement","src":"11650:3:159"},"nodeType":"ForStatement","src":"11607:416:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76264,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76215,"src":"12041:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76265,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76197,"src":"12060:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12041:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":76267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12071:29:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":76263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12033:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12033:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76269,"nodeType":"ExpressionStatement","src":"12033:68:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11273:19:159","parameters":{"id":76188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76184,"mutability":"mutable","name":"dataHash","nameLocation":"11301:8:159","nodeType":"VariableDeclaration","scope":76271,"src":"11293:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11293:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76187,"mutability":"mutable","name":"signatures","nameLocation":"11328:10:159","nodeType":"VariableDeclaration","scope":76271,"src":"11311:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76185,"name":"bytes","nodeType":"ElementaryTypeName","src":"11311:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76186,"nodeType":"ArrayTypeName","src":"11311:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11292:47:159"},"returnParameters":{"id":76189,"nodeType":"ParameterList","parameters":[],"src":"11353:0:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76369,"nodeType":"FunctionDefinition","src":"12114:1288:159","nodes":[],"body":{"id":76368,"nodeType":"Block","src":"12204:1198:159","nodes":[],"statements":[{"assignments":[76281],"declarations":[{"constant":false,"id":76281,"mutability":"mutable","name":"router","nameLocation":"12230:6:159","nodeType":"VariableDeclaration","scope":76368,"src":"12214:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76280,"nodeType":"UserDefinedTypeName","pathNode":{"id":76279,"name":"Storage","nameLocations":["12214:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"12214:7:159"},"referencedDeclaration":73470,"src":"12214:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76284,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76282,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"12239:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12239:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12214:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76286,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76281,"src":"12284:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12291:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12284:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76288,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"12318:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12334:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"12318:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12284:68:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":76291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12354:34:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":76285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12263:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12263:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76293,"nodeType":"ExpressionStatement","src":"12263:135:159"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":76296,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"12435:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12451:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73487,"src":"12435:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76295,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76413,"src":"12416:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":76298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12416:49:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":76299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12467:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":76294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12408:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12408:97:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76301,"nodeType":"ExpressionStatement","src":"12408:97:159"},{"expression":{"id":76307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76302,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76281,"src":"12645:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12652:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12645:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76305,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"12678:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"12678:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12645:58:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76308,"nodeType":"ExpressionStatement","src":"12645:58:159"},{"assignments":[76310],"declarations":[{"constant":false,"id":76310,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12727:17:159","nodeType":"VariableDeclaration","scope":76368,"src":"12714:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76309,"name":"bytes","nodeType":"ElementaryTypeName","src":"12714:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76311,"nodeType":"VariableDeclarationStatement","src":"12714:30:159"},{"body":{"id":76347,"nodeType":"Block","src":"12820:255:159","statements":[{"assignments":[76326],"declarations":[{"constant":false,"id":76326,"mutability":"mutable","name":"stateTransition","nameLocation":"12859:15:159","nodeType":"VariableDeclaration","scope":76347,"src":"12834:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76325,"nodeType":"UserDefinedTypeName","pathNode":{"id":76324,"name":"StateTransition","nameLocations":["12834:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73509,"src":"12834:15:159"},"referencedDeclaration":73509,"src":"12834:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":76331,"initialValue":{"baseExpression":{"expression":{"id":76327,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"12877:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12893:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73491,"src":"12877:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73509_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76330,"indexExpression":{"id":76329,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76313,"src":"12905:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12877:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"12834:73:159"},{"assignments":[76333],"declarations":[{"constant":false,"id":76333,"mutability":"mutable","name":"transitionHash","nameLocation":"12930:14:159","nodeType":"VariableDeclaration","scope":76347,"src":"12922:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12922:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76337,"initialValue":{"arguments":[{"id":76335,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76326,"src":"12966:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":76334,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"12947:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$73509_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":76336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12947:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12922:60:159"},{"expression":{"id":76345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76338,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76310,"src":"12997:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76342,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76310,"src":"13030:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76343,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76333,"src":"13049:14:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13017:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76339,"name":"bytes","nodeType":"ElementaryTypeName","src":"13017:5:159","typeDescriptions":{}}},"id":76341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13023:6:159","memberName":"concat","nodeType":"MemberAccess","src":"13017:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13017:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12997:67:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76346,"nodeType":"ExpressionStatement","src":"12997:67:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76313,"src":"12775:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76317,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"12779:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12795:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73491,"src":"12779:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73509_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12807:6:159","memberName":"length","nodeType":"MemberAccess","src":"12779:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12775:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76348,"initializationExpression":{"assignments":[76313],"declarations":[{"constant":false,"id":76313,"mutability":"mutable","name":"i","nameLocation":"12768:1:159","nodeType":"VariableDeclaration","scope":76348,"src":"12760:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76312,"name":"uint256","nodeType":"ElementaryTypeName","src":"12760:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76315,"initialValue":{"hexValue":"30","id":76314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12772:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12760:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12815:3:159","subExpression":{"id":76321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76313,"src":"12815:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76323,"nodeType":"ExpressionStatement","src":"12815:3:159"},"nodeType":"ForStatement","src":"12755:320:159"},{"eventCall":{"arguments":[{"expression":{"id":76350,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"13105:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13121:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"13105:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76349,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"13090:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13090:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76353,"nodeType":"EmitStatement","src":"13085:46:159"},{"expression":{"arguments":[{"expression":{"id":76355,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"13183:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13199:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"13183:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76357,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"13222:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13238:14:159","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"13222:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":76359,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"13266:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"13266:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76361,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"13314:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13330:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73487,"src":"13314:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76364,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76310,"src":"13367:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76363,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13357:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13357:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76354,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76658,"src":"13149:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":76366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13149:246:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76278,"id":76367,"nodeType":"Return","src":"13142:253:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"12123:12:159","parameters":{"id":76275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76274,"mutability":"mutable","name":"blockCommitment","nameLocation":"12161:15:159","nodeType":"VariableDeclaration","scope":76369,"src":"12136:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76273,"nodeType":"UserDefinedTypeName","pathNode":{"id":76272,"name":"BlockCommitment","nameLocations":["12136:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73492,"src":"12136:15:159"},"referencedDeclaration":73492,"src":"12136:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73492_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"12135:42:159"},"returnParameters":{"id":76278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76369,"src":"12195:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12195:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12194:9:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76413,"nodeType":"FunctionDefinition","src":"13408:338:159","nodes":[],"body":{"id":76412,"nodeType":"Block","src":"13478:268:159","nodes":[],"statements":[{"body":{"id":76408,"nodeType":"Block","src":"13535:183:159","statements":[{"assignments":[76390],"declarations":[{"constant":false,"id":76390,"mutability":"mutable","name":"ret","nameLocation":"13557:3:159","nodeType":"VariableDeclaration","scope":76408,"src":"13549:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13549:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76394,"initialValue":{"arguments":[{"id":76392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"13573:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76391,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13563:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":76393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13563:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13549:26:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76395,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13593:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76396,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"13600:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13593:11:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76401,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13660:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13667:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13660:8:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76406,"nodeType":"IfStatement","src":"13656:52:159","trueBody":{"id":76405,"nodeType":"Block","src":"13670:38:159","statements":[{"id":76404,"nodeType":"Break","src":"13688:5:159"}]}},"id":76407,"nodeType":"IfStatement","src":"13589:119:159","trueBody":{"id":76400,"nodeType":"Block","src":"13606:44:159","statements":[{"expression":{"hexValue":"74727565","id":76398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13631:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":76375,"id":76399,"nodeType":"Return","src":"13624:11:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"13523:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13527:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13523:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76409,"initializationExpression":{"assignments":[76377],"declarations":[{"constant":false,"id":76377,"mutability":"mutable","name":"i","nameLocation":"13501:1:159","nodeType":"VariableDeclaration","scope":76409,"src":"13493:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76376,"name":"uint256","nodeType":"ElementaryTypeName","src":"13493:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76378,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13505:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":76379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13511:6:159","memberName":"number","nodeType":"MemberAccess","src":"13505:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13520:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13505:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13493:28:159"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13530:3:159","subExpression":{"id":76386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"13530:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76388,"nodeType":"ExpressionStatement","src":"13530:3:159"},"nodeType":"ForStatement","src":"13488:230:159"},{"expression":{"hexValue":"66616c7365","id":76410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13734:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":76375,"id":76411,"nodeType":"Return","src":"13727:12:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13417:18:159","parameters":{"id":76372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76371,"mutability":"mutable","name":"hash","nameLocation":"13444:4:159","nodeType":"VariableDeclaration","scope":76413,"src":"13436:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13436:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13435:14:159"},"returnParameters":{"id":76375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76413,"src":"13472:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76373,"name":"bool","nodeType":"ElementaryTypeName","src":"13472:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13471:6:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76631,"nodeType":"FunctionDefinition","src":"13752:2340:159","nodes":[],"body":{"id":76630,"nodeType":"Block","src":"13848:2244:159","nodes":[],"statements":[{"assignments":[76423],"declarations":[{"constant":false,"id":76423,"mutability":"mutable","name":"router","nameLocation":"13874:6:159","nodeType":"VariableDeclaration","scope":76630,"src":"13858:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76422,"nodeType":"UserDefinedTypeName","pathNode":{"id":76421,"name":"Storage","nameLocations":["13858:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"13858:7:159"},"referencedDeclaration":73470,"src":"13858:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76426,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76424,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"13883:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13883:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13858:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76428,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76423,"src":"13915:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13922:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"13915:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76432,"indexExpression":{"expression":{"id":76430,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"13931:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13947:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"13931:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13915:40:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13959:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13915:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":76435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13962:49:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":76427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13907:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13907:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76437,"nodeType":"ExpressionStatement","src":"13907:105:159"},{"assignments":[76440],"declarations":[{"constant":false,"id":76440,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"14036:16:159","nodeType":"VariableDeclaration","scope":76630,"src":"14023:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"},"typeName":{"id":76439,"nodeType":"UserDefinedTypeName","pathNode":{"id":76438,"name":"IWrappedVara","nameLocations":["14023:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":73767,"src":"14023:12:159"},"referencedDeclaration":73767,"src":"14023:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76445,"initialValue":{"arguments":[{"expression":{"id":76442,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76423,"src":"14068:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14075:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"14068:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76441,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"14055:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73767_$","typeString":"type(contract IWrappedVara)"}},"id":76444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14055:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"14023:64:159"},{"expression":{"arguments":[{"expression":{"id":76449,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14123:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14139:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"14123:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76451,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14148:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14164:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73500,"src":"14148:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76446,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76440,"src":"14097:16:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73767","typeString":"contract IWrappedVara"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14114:8:159","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"14097:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14097:82:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76454,"nodeType":"ExpressionStatement","src":"14097:82:159"},{"assignments":[76457],"declarations":[{"constant":false,"id":76457,"mutability":"mutable","name":"mirrorActor","nameLocation":"14198:11:159","nodeType":"VariableDeclaration","scope":76630,"src":"14190:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":76456,"nodeType":"UserDefinedTypeName","pathNode":{"id":76455,"name":"IMirror","nameLocations":["14190:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"14190:7:159"},"referencedDeclaration":73387,"src":"14190:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76462,"initialValue":{"arguments":[{"expression":{"id":76459,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14220:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14236:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"14220:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76458,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"14212:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":76461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14212:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"14190:54:159"},{"assignments":[76464],"declarations":[{"constant":false,"id":76464,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14268:16:159","nodeType":"VariableDeclaration","scope":76630,"src":"14255:29:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76463,"name":"bytes","nodeType":"ElementaryTypeName","src":"14255:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76465,"nodeType":"VariableDeclarationStatement","src":"14255:29:159"},{"body":{"id":76514,"nodeType":"Block","src":"14360:367:159","statements":[{"assignments":[76480],"declarations":[{"constant":false,"id":76480,"mutability":"mutable","name":"valueClaim","nameLocation":"14394:10:159","nodeType":"VariableDeclaration","scope":76514,"src":"14374:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":76479,"nodeType":"UserDefinedTypeName","pathNode":{"id":76478,"name":"ValueClaim","nameLocations":["14374:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":73516,"src":"14374:10:159"},"referencedDeclaration":73516,"src":"14374:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":76485,"initialValue":{"baseExpression":{"expression":{"id":76481,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14407:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14423:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73504,"src":"14407:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73516_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76484,"indexExpression":{"id":76483,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"14435:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14407:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14374:63:159"},{"expression":{"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76486,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"14452:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76490,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"14501:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76493,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14536:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14547:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14536:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76495,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14558:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14569:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14558:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76497,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14582:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14593:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73515,"src":"14582:16:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14519:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14523:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"14519:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14519:80:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":76488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14471:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76487,"name":"bytes","nodeType":"ElementaryTypeName","src":"14471:5:159","typeDescriptions":{}}},"id":76489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14477:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14471:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:142:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14452:161:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76502,"nodeType":"ExpressionStatement","src":"14452:161:159"},{"expression":{"arguments":[{"expression":{"id":76506,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14653:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14664:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14653:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76508,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14675:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14686:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14675:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76510,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"14699:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73516_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14710:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73515,"src":"14699:16:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76503,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"14628:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14640:12:159","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":73368,"src":"14628:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":76512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14628:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76513,"nodeType":"ExpressionStatement","src":"14628:88:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"14315:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76471,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14319:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14335:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73504,"src":"14319:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73516_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14347:6:159","memberName":"length","nodeType":"MemberAccess","src":"14319:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14315:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76515,"initializationExpression":{"assignments":[76467],"declarations":[{"constant":false,"id":76467,"mutability":"mutable","name":"i","nameLocation":"14308:1:159","nodeType":"VariableDeclaration","scope":76515,"src":"14300:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76466,"name":"uint256","nodeType":"ElementaryTypeName","src":"14300:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76469,"initialValue":{"hexValue":"30","id":76468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14312:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14300:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14355:3:159","subExpression":{"id":76475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"14355:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76477,"nodeType":"ExpressionStatement","src":"14355:3:159"},"nodeType":"ForStatement","src":"14295:432:159"},{"assignments":[76517],"declarations":[{"constant":false,"id":76517,"mutability":"mutable","name":"messagesHashes","nameLocation":"14750:14:159","nodeType":"VariableDeclaration","scope":76630,"src":"14737:27:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76516,"name":"bytes","nodeType":"ElementaryTypeName","src":"14737:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76518,"nodeType":"VariableDeclarationStatement","src":"14737:27:159"},{"body":{"id":76588,"nodeType":"Block","src":"14837:764:159","statements":[{"assignments":[76533],"declarations":[{"constant":false,"id":76533,"mutability":"mutable","name":"outgoingMessage","nameLocation":"14876:15:159","nodeType":"VariableDeclaration","scope":76588,"src":"14851:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76532,"nodeType":"UserDefinedTypeName","pathNode":{"id":76531,"name":"OutgoingMessage","nameLocations":["14851:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73528,"src":"14851:15:159"},"referencedDeclaration":73528,"src":"14851:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":76538,"initialValue":{"baseExpression":{"expression":{"id":76534,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14894:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14910:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73508,"src":"14894:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73528_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76537,"indexExpression":{"id":76536,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76520,"src":"14919:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14894:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"14851:70:159"},{"expression":{"id":76548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76539,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76517,"src":"14936:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76543,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76517,"src":"14966:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":76545,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15003:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":76544,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"src":"14982:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$73528_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14982:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14953:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76540,"name":"bytes","nodeType":"ElementaryTypeName","src":"14953:5:159","typeDescriptions":{}}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14959:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14953:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14936:84:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76549,"nodeType":"ExpressionStatement","src":"14936:84:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76550,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15039:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15055:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73527,"src":"15039:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73533_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15068:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"15039:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15074:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15039:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76586,"nodeType":"Block","src":"15274:317:159","statements":[{"expression":{"arguments":[{"expression":{"id":76572,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15335:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15335:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76574,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15384:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15400:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15384:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76576,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15429:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15445:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"15429:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76578,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15472:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15488:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73527,"src":"15472:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73533_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15501:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"15472:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76581,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15525:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15541:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73527,"src":"15525:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73533_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15554:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73532,"src":"15525:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76569,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15292:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15304:9:159","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":73359,"src":"15292:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15292:284:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76585,"nodeType":"ExpressionStatement","src":"15292:284:159"}]},"id":76587,"nodeType":"IfStatement","src":"15035:556:159","trueBody":{"id":76568,"nodeType":"Block","src":"15077:191:159","statements":[{"expression":{"arguments":[{"expression":{"id":76558,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15140:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15156:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"15140:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76560,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15160:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15176:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15160:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76562,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15189:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15205:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15189:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76564,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76533,"src":"15214:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15230:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"15214:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76555,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15095:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15107:11:159","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":73346,"src":"15095:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15095:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76567,"nodeType":"ExpressionStatement","src":"15095:158:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76523,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76520,"src":"14795:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76524,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14799:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14815:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73508,"src":"14799:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73528_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14824:6:159","memberName":"length","nodeType":"MemberAccess","src":"14799:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14795:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76589,"initializationExpression":{"assignments":[76520],"declarations":[{"constant":false,"id":76520,"mutability":"mutable","name":"i","nameLocation":"14788:1:159","nodeType":"VariableDeclaration","scope":76589,"src":"14780:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76519,"name":"uint256","nodeType":"ElementaryTypeName","src":"14780:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76522,"initialValue":{"hexValue":"30","id":76521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14792:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14780:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14832:3:159","subExpression":{"id":76528,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76520,"src":"14832:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76530,"nodeType":"ExpressionStatement","src":"14832:3:159"},"nodeType":"ForStatement","src":"14775:826:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76590,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15615:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15631:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"15615:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15652:1:159","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":76593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15644:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76592,"name":"address","nodeType":"ElementaryTypeName","src":"15644:7:159","typeDescriptions":{}}},"id":76595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15644:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15615:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76605,"nodeType":"IfStatement","src":"15611:121:159","trueBody":{"id":76604,"nodeType":"Block","src":"15656:76:159","statements":[{"expression":{"arguments":[{"expression":{"id":76600,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15695:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15711:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"15695:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":76597,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15670:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15682:12:159","memberName":"setInheritor","nodeType":"MemberAccess","referencedDeclaration":73335,"src":"15670:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":76602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15670:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76603,"nodeType":"ExpressionStatement","src":"15670:51:159"}]}},{"expression":{"arguments":[{"expression":{"id":76609,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15766:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15782:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15766:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76606,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76457,"src":"15742:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15754:11:159","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":73330,"src":"15742:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15742:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76612,"nodeType":"ExpressionStatement","src":"15742:53:159"},{"expression":{"arguments":[{"expression":{"id":76614,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15847:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15863:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"15847:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76616,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15884:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15900:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15884:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76618,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15926:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15942:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"15926:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76620,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"15965:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15981:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73500,"src":"15965:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76623,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"16019:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76622,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16009:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16009:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76626,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76517,"src":"16060:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16050:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16050:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76613,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76688,"src":"15813:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":76628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15813:272:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76420,"id":76629,"nodeType":"Return","src":"15806:279:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"13761:18:159","parameters":{"id":76417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76416,"mutability":"mutable","name":"stateTransition","nameLocation":"13805:15:159","nodeType":"VariableDeclaration","scope":76631,"src":"13780:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76415,"nodeType":"UserDefinedTypeName","pathNode":{"id":76414,"name":"StateTransition","nameLocations":["13780:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73509,"src":"13780:15:159"},"referencedDeclaration":73509,"src":"13780:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73509_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"13779:42:159"},"returnParameters":{"id":76420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76631,"src":"13839:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13839:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13838:9:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76658,"nodeType":"FunctionDefinition","src":"16098:389:159","nodes":[],"body":{"id":76657,"nodeType":"Block","src":"16329:158:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76649,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16386:9:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76650,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76635,"src":"16397:14:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76651,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76637,"src":"16413:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76652,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76639,"src":"16433:13:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76653,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76641,"src":"16448:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76647,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16369:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16373:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16369:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16369:101:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76646,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16346:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16346:134:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76645,"id":76656,"nodeType":"Return","src":"16339:141:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"16107:20:159","parameters":{"id":76642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76633,"mutability":"mutable","name":"blockHash","nameLocation":"16145:9:159","nodeType":"VariableDeclaration","scope":76658,"src":"16137:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16137:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76635,"mutability":"mutable","name":"blockTimestamp","nameLocation":"16171:14:159","nodeType":"VariableDeclaration","scope":76658,"src":"16164:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76634,"name":"uint48","nodeType":"ElementaryTypeName","src":"16164:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76637,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"16203:18:159","nodeType":"VariableDeclaration","scope":76658,"src":"16195:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16195:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76639,"mutability":"mutable","name":"predBlockHash","nameLocation":"16239:13:159","nodeType":"VariableDeclaration","scope":76658,"src":"16231:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16231:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76641,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"16270:21:159","nodeType":"VariableDeclaration","scope":76658,"src":"16262:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16262:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16127:170:159"},"returnParameters":{"id":76645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76658,"src":"16320:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16320:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16319:9:159"},"scope":76879,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76688,"nodeType":"FunctionDefinition","src":"16493:410:159","nodes":[],"body":{"id":76687,"nodeType":"Block","src":"16743:160:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76678,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76660,"src":"16800:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76679,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76662,"src":"16809:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76680,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76664,"src":"16823:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76681,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"src":"16834:14:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76682,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76668,"src":"16850:15:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76683,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76670,"src":"16867:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16783:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16787:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16783:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16783:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76675,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16760:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16760:136:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76674,"id":76686,"nodeType":"Return","src":"16753:143:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16502:20:159","parameters":{"id":76671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76660,"mutability":"mutable","name":"actorId","nameLocation":"16540:7:159","nodeType":"VariableDeclaration","scope":76688,"src":"16532:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76659,"name":"address","nodeType":"ElementaryTypeName","src":"16532:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76662,"mutability":"mutable","name":"newStateHash","nameLocation":"16565:12:159","nodeType":"VariableDeclaration","scope":76688,"src":"16557:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16557:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76664,"mutability":"mutable","name":"inheritor","nameLocation":"16595:9:159","nodeType":"VariableDeclaration","scope":76688,"src":"16587:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76663,"name":"address","nodeType":"ElementaryTypeName","src":"16587:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76666,"mutability":"mutable","name":"valueToReceive","nameLocation":"16622:14:159","nodeType":"VariableDeclaration","scope":76688,"src":"16614:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76665,"name":"uint128","nodeType":"ElementaryTypeName","src":"16614:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76668,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16654:15:159","nodeType":"VariableDeclaration","scope":76688,"src":"16646:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16646:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76670,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16687:18:159","nodeType":"VariableDeclaration","scope":76688,"src":"16679:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16679:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16522:189:159"},"returnParameters":{"id":76674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76688,"src":"16734:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16734:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16733:9:159"},"scope":76879,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76717,"nodeType":"FunctionDefinition","src":"16909:451:159","nodes":[],"body":{"id":76716,"nodeType":"Block","src":"17012:348:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76699,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17086:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17102:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"17086:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76701,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17122:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17138:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"17122:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76703,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17167:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17183:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"17167:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76705,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17208:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17224:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"17208:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76707,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17247:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17263:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73527,"src":"17247:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73533_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17276:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"17247:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76710,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17296:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17312:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73527,"src":"17296:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73533_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17325:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73532,"src":"17296:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17052:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17056:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17052:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17052:291:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76696,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17029:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17029:324:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76695,"id":76715,"nodeType":"Return","src":"17022:331:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"16918:20:159","parameters":{"id":76692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76691,"mutability":"mutable","name":"outgoingMessage","nameLocation":"16964:15:159","nodeType":"VariableDeclaration","scope":76717,"src":"16939:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76690,"nodeType":"UserDefinedTypeName","pathNode":{"id":76689,"name":"OutgoingMessage","nameLocations":["16939:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73528,"src":"16939:15:159"},"referencedDeclaration":73528,"src":"16939:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73528_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"16938:42:159"},"returnParameters":{"id":76695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76717,"src":"17003:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17003:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17002:9:159"},"scope":76879,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76736,"nodeType":"FunctionDefinition","src":"17366:192:159","nodes":[],"body":{"id":76735,"nodeType":"Block","src":"17466:92:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76728,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17510:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"17510:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76730,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17529:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17544:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"17529:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":76726,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17493:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17497:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17493:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17493:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76725,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17483:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17483:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76724,"id":76734,"nodeType":"Return","src":"17476:75:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"17375:19:159","parameters":{"id":76721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76720,"mutability":"mutable","name":"codeCommitment","nameLocation":"17419:14:159","nodeType":"VariableDeclaration","scope":76736,"src":"17395:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":76719,"nodeType":"UserDefinedTypeName","pathNode":{"id":76718,"name":"CodeCommitment","nameLocations":["17395:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"17395:14:159"},"referencedDeclaration":73479,"src":"17395:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"17394:40:159"},"returnParameters":{"id":76724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76736,"src":"17457:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17457:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17456:9:159"},"scope":76879,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76769,"nodeType":"FunctionDefinition","src":"17564:257:159","nodes":[],"body":{"id":76768,"nodeType":"Block","src":"17612:209:159","nodes":[],"statements":[{"assignments":[76743],"declarations":[{"constant":false,"id":76743,"mutability":"mutable","name":"router","nameLocation":"17638:6:159","nodeType":"VariableDeclaration","scope":76768,"src":"17622:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76742,"nodeType":"UserDefinedTypeName","pathNode":{"id":76741,"name":"Storage","nameLocations":["17622:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17622:7:159"},"referencedDeclaration":73470,"src":"17622:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76746,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76744,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"17647:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17647:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17622:38:159"},{"assignments":[76748],"declarations":[{"constant":false,"id":76748,"mutability":"mutable","name":"success","nameLocation":"17676:7:159","nodeType":"VariableDeclaration","scope":76768,"src":"17671:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76747,"name":"bool","nodeType":"ElementaryTypeName","src":"17671:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76762,"initialValue":{"arguments":[{"expression":{"id":76754,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17726:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":76755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17729:6:159","memberName":"origin","nodeType":"MemberAccess","src":"17726:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76758,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17745:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76879","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76879","typeString":"contract Router"}],"id":76757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17737:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76756,"name":"address","nodeType":"ElementaryTypeName","src":"17737:7:159","typeDescriptions":{}}},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76760,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76738,"src":"17752:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"id":76750,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76743,"src":"17693:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17700:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"17693:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76749,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"17686:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$43140_$","typeString":"type(contract IERC20)"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17686:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$43140","typeString":"contract IERC20"}},"id":76753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17713:12:159","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"17686:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17686:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17671:88:159"},{"expression":{"arguments":[{"id":76764,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"17778:7:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":76765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17787:26:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":76763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17770:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17770:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76767,"nodeType":"ExpressionStatement","src":"17770:44:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17573:14:159","parameters":{"id":76739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76738,"mutability":"mutable","name":"_value","nameLocation":"17596:6:159","nodeType":"VariableDeclaration","scope":76769,"src":"17588:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76737,"name":"uint128","nodeType":"ElementaryTypeName","src":"17588:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17587:16:159"},"returnParameters":{"id":76740,"nodeType":"ParameterList","parameters":[],"src":"17612:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76810,"nodeType":"FunctionDefinition","src":"17827:317:159","nodes":[],"body":{"id":76809,"nodeType":"Block","src":"17863:281:159","nodes":[],"statements":[{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"router","nameLocation":"17889:6:159","nodeType":"VariableDeclaration","scope":76809,"src":"17873:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76773,"nodeType":"UserDefinedTypeName","pathNode":{"id":76772,"name":"Storage","nameLocations":["17873:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17873:7:159"},"referencedDeclaration":73470,"src":"17873:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76775,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"17898:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17898:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17873:38:159"},{"body":{"id":76803,"nodeType":"Block","src":"17981:118:159","statements":[{"assignments":[76791],"declarations":[{"constant":false,"id":76791,"mutability":"mutable","name":"validator","nameLocation":"18003:9:159","nodeType":"VariableDeclaration","scope":76803,"src":"17995:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76790,"name":"address","nodeType":"ElementaryTypeName","src":"17995:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76796,"initialValue":{"baseExpression":{"expression":{"id":76792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"18015:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18022:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18015:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76795,"indexExpression":{"id":76794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76779,"src":"18037:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18015:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17995:44:159"},{"expression":{"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18053:35:159","subExpression":{"baseExpression":{"expression":{"id":76797,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"18060:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18067:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"18060:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76800,"indexExpression":{"id":76799,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"18078:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18060:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76802,"nodeType":"ExpressionStatement","src":"18053:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76782,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76779,"src":"17942:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76783,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"17946:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17953:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17946:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17968:6:159","memberName":"length","nodeType":"MemberAccess","src":"17946:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17942:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76804,"initializationExpression":{"assignments":[76779],"declarations":[{"constant":false,"id":76779,"mutability":"mutable","name":"i","nameLocation":"17935:1:159","nodeType":"VariableDeclaration","scope":76804,"src":"17927:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76778,"name":"uint256","nodeType":"ElementaryTypeName","src":"17927:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76781,"initialValue":{"hexValue":"30","id":76780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17939:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17927:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17976:3:159","subExpression":{"id":76787,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76779,"src":"17976:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76789,"nodeType":"ExpressionStatement","src":"17976:3:159"},"nodeType":"ForStatement","src":"17922:177:159"},{"expression":{"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18109:28:159","subExpression":{"expression":{"id":76805,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"18116:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18123:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18116:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76808,"nodeType":"ExpressionStatement","src":"18109:28:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"17836:16:159","parameters":{"id":76770,"nodeType":"ParameterList","parameters":[],"src":"17852:2:159"},"returnParameters":{"id":76771,"nodeType":"ParameterList","parameters":[],"src":"17863:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76865,"nodeType":"FunctionDefinition","src":"18150:442:159","nodes":[],"body":{"id":76864,"nodeType":"Block","src":"18217:375:159","nodes":[],"statements":[{"assignments":[76818],"declarations":[{"constant":false,"id":76818,"mutability":"mutable","name":"router","nameLocation":"18243:6:159","nodeType":"VariableDeclaration","scope":76864,"src":"18227:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76817,"nodeType":"UserDefinedTypeName","pathNode":{"id":76816,"name":"Storage","nameLocations":["18227:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"18227:7:159"},"referencedDeclaration":73470,"src":"18227:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76821,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76819,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"18252:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18252:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18227:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76823,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76818,"src":"18284:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18291:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18284:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18306:6:159","memberName":"length","nodeType":"MemberAccess","src":"18284:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18316:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18284:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":76828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18319:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":76822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18276:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18276:81:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76830,"nodeType":"ExpressionStatement","src":"18276:81:159"},{"body":{"id":76856,"nodeType":"Block","src":"18422:113:159","statements":[{"assignments":[76843],"declarations":[{"constant":false,"id":76843,"mutability":"mutable","name":"validator","nameLocation":"18444:9:159","nodeType":"VariableDeclaration","scope":76856,"src":"18436:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76842,"name":"address","nodeType":"ElementaryTypeName","src":"18436:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76847,"initialValue":{"baseExpression":{"id":76844,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76813,"src":"18456:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76846,"indexExpression":{"id":76845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76832,"src":"18473:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18456:19:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18436:39:159"},{"expression":{"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76848,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76818,"src":"18489:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18496:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"18489:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76852,"indexExpression":{"id":76850,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76843,"src":"18507:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18489:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18520:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18489:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76855,"nodeType":"ExpressionStatement","src":"18489:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76832,"src":"18388:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76836,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76813,"src":"18392:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18409:6:159","memberName":"length","nodeType":"MemberAccess","src":"18392:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18388:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76857,"initializationExpression":{"assignments":[76832],"declarations":[{"constant":false,"id":76832,"mutability":"mutable","name":"i","nameLocation":"18381:1:159","nodeType":"VariableDeclaration","scope":76857,"src":"18373:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76831,"name":"uint256","nodeType":"ElementaryTypeName","src":"18373:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76834,"initialValue":{"hexValue":"30","id":76833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18385:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18373:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18417:3:159","subExpression":{"id":76839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76832,"src":"18417:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76841,"nodeType":"ExpressionStatement","src":"18417:3:159"},"nodeType":"ForStatement","src":"18368:167:159"},{"expression":{"id":76862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76818,"src":"18545:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18552:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18545:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76861,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76813,"src":"18569:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18545:40:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76863,"nodeType":"ExpressionStatement","src":"18545:40:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"18159:14:159","parameters":{"id":76814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76813,"mutability":"mutable","name":"_validatorsArray","nameLocation":"18191:16:159","nodeType":"VariableDeclaration","scope":76865,"src":"18174:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76811,"name":"address","nodeType":"ElementaryTypeName","src":"18174:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76812,"nodeType":"ArrayTypeName","src":"18174:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18173:35:159"},"returnParameters":{"id":76815,"nodeType":"ParameterList","parameters":[],"src":"18217:0:159"},"scope":76879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76878,"nodeType":"FunctionDefinition","src":"18598:222:159","nodes":[],"body":{"id":76877,"nodeType":"Block","src":"18667:153:159","nodes":[],"statements":[{"assignments":[76872],"declarations":[{"constant":false,"id":76872,"mutability":"mutable","name":"slot","nameLocation":"18685:4:159","nodeType":"VariableDeclaration","scope":76877,"src":"18677:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18677:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76875,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76873,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75358,"src":"18692:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18692:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18677:31:159"},{"AST":{"nativeSrc":"18771:43:159","nodeType":"YulBlock","src":"18771:43:159","statements":[{"nativeSrc":"18785:19:159","nodeType":"YulAssignment","src":"18785:19:159","value":{"name":"slot","nativeSrc":"18800:4:159","nodeType":"YulIdentifier","src":"18800:4:159"},"variableNames":[{"name":"router.slot","nativeSrc":"18785:11:159","nodeType":"YulIdentifier","src":"18785:11:159"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":76869,"isOffset":false,"isSlot":true,"src":"18785:11:159","suffix":"slot","valueSize":1},{"declaration":76872,"isOffset":false,"isSlot":false,"src":"18800:4:159","valueSize":1}],"id":76876,"nodeType":"InlineAssembly","src":"18762:52:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18607:11:159","parameters":{"id":76866,"nodeType":"ParameterList","parameters":[],"src":"18618:2:159"},"returnParameters":{"id":76870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76869,"mutability":"mutable","name":"router","nameLocation":"18659:6:159","nodeType":"VariableDeclaration","scope":76878,"src":"18643:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76868,"nodeType":"UserDefinedTypeName","pathNode":{"id":76867,"name":"Storage","nameLocations":["18643:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"18643:7:159"},"referencedDeclaration":73470,"src":"18643:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18642:24:159"},"scope":76879,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":75161,"name":"IRouter","nameLocations":["898:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73756,"src":"898:7:159"},"id":75162,"nodeType":"InheritanceSpecifier","src":"898:7:159"},{"baseName":{"id":75163,"name":"OwnableUpgradeable","nameLocations":["907:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"907:18:159"},"id":75164,"nodeType":"InheritanceSpecifier","src":"907:18:159"},{"baseName":{"id":75165,"name":"ReentrancyGuardTransient","nameLocations":["927:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":44045,"src":"927:24:159"},"id":75166,"nodeType":"InheritanceSpecifier","src":"927:24:159"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76879,44045,39387,40535,39641,73756],"name":"Router","nameLocation":"888:6:159","scope":76880,"usedErrors":[39223,39228,39404,39407,43912,43918,43989,44912,44917,44922],"usedEvents":[39234,39412,73538,73545,73552,73559,73562,73565,73570,73575]}],"license":"UNLICENSED"},"id":159} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct IRouter.OutgoingMessage[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lastBlockCommitmentTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161298890816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611ce75750806301b1d156146113825780630834fecc1461134b5780631c149d8a1461120357806328e24b3d146111d95780632dacfb69146111ac5780633d43b4181461115a5780634083acec14611125578063444d9172146110ed5780635686cad51461103b578063666d124c14610f3f5780636c2eb35014610d375780636ef25c3a14610d0c578063715018a614610ca557806378ee5dec14610c6d5780638028861a14610bf05780638074b45514610b3157806388f50cf014610af95780638da5cb5b14610ac55780638febbd5914610a785780639067088e14610a305780639670822614610a0757806396a2ddfa146109da578063a6bbbe1c1461092f578063c13911e8146108e9578063ca1e781914610872578063d3fd63641461083c578063e71731e41461074f578063e97d3eb31461052a578063ed612f8c146104fd578063edc87225146104db578063efd81abc146104ae578063f2fde38b146104885763f8453e7c14610191575f80fd5b346104845760a0366003190112610484576101aa611d41565b602435906001600160a01b038216820361048457604435916001600160a01b038316830361048457606435926001600160a01b0384168403610484576084356001600160401b038111610484573660238201121561048457610216903690602481600401359101611dfe565b905f805160206129338339815191525460ff8160401c1615946001600160401b0382168015908161047c575b6001149081610472575b159081610469575b5061045a5767ffffffffffffffff1982166001175f8051602061293383398151915255610297918661042e575b5061028a6127ab565b6102926127ab565b611fda565b60409485516102a68782611d57565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102da61226c565b5190205f19810190811161041a5786519060208201908152602082526103008883611d57565b60ff19915190201690815f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161041a57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60068301556007919091018054680a000000009502f9006001600160c01b03199091161790556103c39061259d565b6103c957005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f8051602061293383398151915254165f80516020612933833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f80516020612933833981519152555f610281565b63f92ee8a960e01b5f5260045ffd5b9050155f610254565b303b15915061024c565b879150610242565b5f80fd5b34610484576020366003190112610484576104ac6104a4611d41565b61029261226c565b005b34610484575f36600319011261048457602060065f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760206104f5611f9c565b604051908152f35b34610484575f36600319011261048457602060095f80516020612913833981519152540154604051908152f35b34610484576040366003190112610484576004356001600160401b0381116104845736602382011215610484578060040135906001600160401b038211610484573660248360061b83010111610484576024356001600160401b0381116104845761059a83913690600401611d11565b90925f8051602061291383398151915254906060925f95600a8401945b8688101561073e578760061b840197610609604460248b01359a01926105dc84611f81565b60405160208101918d8352151560f81b604082015260218152610600604182611d57565b51902090611e62565b98805f528760205260ff60405f205416600381101561072a576001036106d557610634600193611f81565b15610692577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600b8a016106818154611f8e565b9055604051908152a25b01966105b7565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a261068b565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104ac9350602081519101206120e7565b34610484576020366003190112610484576004356001600160401b0381116104845761077f903690600401611d11565b61078761226c565b5f805160206129138339815191525460088101906009015f5b81548110156107d7575f82815260208082208301546001600160a01b0316825284905260409020805460ff191690556001016107a0565b5080545f825591508161081e575b6107f86107f3368587611dfe565b61259d565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107e5575f8155600101610829565b34610484575f3660031901126104845760206001600160401b0360075f8051602061291383398151915254015416604051908152f35b34610484575f3660031901126104845761089c60095f805160206129138339815191525401611eee565b6040518091602082016020835281518091526020604084019201905f5b8181106108c7575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108b9565b3461048457602036600319011261048457600a5f8051602061291383398151915254016004355f5260205260ff60405f205416604051600382101561072a576020918152f35b34610484576020366003190112610484576004356001600160801b03811690818103610484577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d7409160209161098261226c565b5f8051602061291383398151915254600701805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610484575f366003190112610484576020600d5f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760205f8051602061291383398151915254604051908152f35b3461048457602036600319011261048457610a49611d41565b600c5f8051602061291383398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461048457602036600319011261048457610a91611d41565b60085f8051602061291383398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610484575f366003190112610484575f805160206128f3833981519152546040516001600160a01b039091168152602090f35b34610484575f366003190112610484575f8051602061291383398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610484576044356001600160401b03811161048457610b5c903690600401611dd1565b90606435916001600160801b038316830361048457610b80836024356004356122bf565b6001600160a01b0390911692909190833b1561048457610bb75f9360405196879485946306f0ee9760e51b86523260048701611eb1565b038183855af1918215610be557602092610bd5575b50604051908152f35b5f610bdf91611d57565b82610bcc565b6040513d5f823e3d90fd5b34610484576020366003190112610484576004356001600160401b0381168091036104845760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c4161226c565b5f8051602061291383398151915254600701805467ffffffffffffffff191682179055604051908152a1005b34610484575f366003190112610484575f8051602061291383398151915254600201546040516001600160a01b039091168152602090f35b34610484575f36600319011261048457610cbd61226c565b5f805160206128f383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610484575f366003190112610484576020610d26611f3f565b6001600160801b0360405191168152f35b34610484575f36600319011261048457610d4f61226c565b5f805160206129338339815191525460ff8160401c168015610f2b575b61045a5768ffffffffffffffffff191668010000000000000002175f80516020612933833981519152555f80516020612913833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dd290600901611eee565b906040918251610de28482611d57565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e1661226c565b5190205f19810190811161041a578351906020820190815260208252610e3c8583611d57565b60ff19915190201694855f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161041a574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610efe9061259d565b60ff60401b195f8051602061293383398151915254165f80516020612933833981519152555160028152a1005b5060026001600160401b0382161015610d6c565b60a036600319011261048457610f53611d41565b6044356024356064356001600160401b03811161048457610f78903690600401611dd1565b90608435946001600160801b038616860361048457610f988686866122bf565b949060018060a01b0316956040519060208201928352604082015260408152610fc2606082611d57565b519020853b1561048457604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610be55761102b575b50833b1561048457610bb75f9360405196879485946306f0ee9760e51b86523260048701611eb1565b5f61103591611d57565b85611002565b34610484576020366003190112610484576004356001600160401b03811161048457366023820112156104845761107c903690602481600401359101611d8c565b61108461226c565b602081519101205f19810190811161041a576040519060208201908152602082526110b0604083611d57565b9051902060ff19165f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610484575f366003190112610484575f8051602061291383398151915254600101546040516001600160a01b039091168152602090f35b34610484575f36600319011261048457602065ffffffffffff60055f8051602061291383398151915254015416604051908152f35b3461048457602036600319011261048457611173611d41565b61117b61226c565b5f805160206129138339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610484575f36600319011261048457602060045f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760205f805160206129138339815191525454604051908152f35b34610484576040366003190112610484576024356004358115801590611341575b156112fc57600a5f80516020612913833981519152540190805f528160205260ff60405f205416600381101561072a5761129e577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611224565b34610484575f366003190112610484576020610d266001600160801b0360075f8051602061291383398151915254015460401c1690565b34610484576040366003190112610484576004356001600160401b038111610484576113b2903690600401611d11565b906024356001600160401b038111610484576113d2903690600401611d11565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611cd85760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b85831015611ca1578260051b84013595609e1985360301871215610484575f805160206129138339815191525460048101805460408a8901013503611c5d5761147260608a890101356126de565b15611c0c5788879995999894989693960135905565ffffffffffff600561149d6020878a010161204b565b9201911665ffffffffffff198254161790556060925f965b6114c5878301608081019061205e565b9050881015611b62576114e8886114e2898501608081019061205e565b90612093565b955f805160206129138339815191525461150188612721565b6001600160a01b03165f908152600c8201602052604090205415611b0557600301546001600160801b03906020906001600160a01b031660448a5f611551606061154a84612721565b9301612735565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610be557611ad9575b506001600160a01b0361159c88612721565b16995f9160605b6115b060808b018b612761565b9050841015611716576115c660808b018b612761565b85919510156117025760206116708f93826115e781606087028b0101612721565b6115f86040606088028c0101612735565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261163e606482611d57565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611d57565b94611682602060608402830101612721565b611693604060608502840101612735565b933b15610484578f5f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610be5576001926116f2575b5001926115a3565b5f6116fc91611d57565b8e6116ea565b634e487b7160e01b5f52603260045260245ffd5b9690919599939492509996996060915f5b61173460a08c018c61205e565b905081101561197157806117f58f92611755906114e28f60a081019061205e565b9561176260208801612721565b6060610600603460548b61178561177c60408301836120b5565b96909201612735565b8d608061179460a08301612796565b9188604051998a96602088019c8d853590526001600160601b03199060601b166040890152888801378501936001600160801b031990831b16868501520135606483015263ffffffff60e01b16608482015203016014810184520182611d57565b9460808101356118a85761180b60208201612721565b9261181960408301836120b5565b91909461182860608501612735565b823b15610484575f9485916001600160801b036118766040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e91565b9116606483015203925af1918215610be557600192611898575b505b01611727565b5f6118a291611d57565b8f611890565b916118b560208401612721565b906118c360408501856120b5565b6118d260608794939401612735565b956118df60a08201612796565b94833b156104845761192b975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e91565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610be557600192611961575b50611892565b5f61196b91611d57565b8f61195b565b50959496929b939998909a91604082019160018060a01b0361199284612721565b16611a82575b602081013591863b15610484575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610be557600197611a6397611a72575b506119f560606119ee6119e886612721565b97612721565b9401612735565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261060060b882611d57565b940196929790979491946114b5565b5f611a7c91611d57565b5f6119d6565b611a8b83612721565b863b1561048457604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610be557611ac9575b50611998565b5f611ad391611d57565b8e611ac3565b611af99060203d8111611afe575b611af18183611d57565b810190612749565b61158a565b503d611ae7565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b90611c0292975093600193949895987fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051838b01358152a1611bac6020828a010161204b565b91602081519101206060604051926020840194818c0135865265ffffffffffff60d01b9060d01b1660408501526040818c01013560468501528a010135606683015260868201526086815261060060a682611d57565b9401919093611424565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b9084611cb392602081519101206120e7565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610484575f36600319011261048457602090600b5f805160206129138339815191525401548152f35b9181601f84011215610484578235916001600160401b038311610484576020808501948460051b01011161048457565b600435906001600160a01b038216820361048457565b90601f801991011681019081106001600160401b03821117611d7857604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611d785760405191611db5601f8201601f191660200184611d57565b829481845281830111610484578281602093845f960137010152565b9181601f84011215610484578235916001600160401b038311610484576020838186019501011161048457565b9092916001600160401b038411611d78578360051b916020604051611e2582860182611d57565b809681520192810191821161048457915b818310611e4257505050565b82356001600160a01b038116810361048457815260209283019201611e36565b602080611e8f928195946040519682889351918291018585015e8201908382015203018085520183611d57565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611ee16001600160801b0393606095859360018060a01b03168852608060208901526080880191611e91565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611f1d575050611e8f92500383611d57565b84546001600160a01b0316835260019485019487945060209093019201611f08565b5f8051602061291383398151915254600701546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361041a5790565b3580151581036104845790565b5f19811461041a5760010190565b5f8051602061291383398151915254600660098201549101549081810291818304149015171561041a5761270f810180911161041a57612710900490565b6001600160a01b03168015612038575f805160206128f383398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff811681036104845790565b903590601e198136030182121561048457018035906001600160401b03821161048457602001918160051b3603831361048457565b91908110156117025760051b8101359060be1981360301821215610484570190565b903590601e198136030182121561048457018035906001600160401b0382116104845760200191813603831361048457565b905f805160206129138339815191525490612100611f9c565b9260405190602082019081526020825261211b604083611d57565b612157603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611d57565b5190205f9260080191835b868510156122605761219861218f6121896121828860051b8601866120b5565b3691611d8c565b856127d6565b90929192612810565b6001600160a01b03165f9081526020859052604090205460ff1615612225576121c090611f8e565b938585146121d15760010193612162565b505050509091505b106121e057565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506121d9565b5f805160206128f3833981519152546001600160a01b0316330361228c57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161041a57565b9291925f805160206129138339815191525491815f52600a830160205260ff60405f205416600381101561072a57600203612541576122fc611f3f565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610be5575f90612504575b60ff915016604d811161041a5760646123686020936123636001600160801b038095600a0a16809c61229f565b61229f565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610be5575f916124e5575b50156124a0576e5af43d82803e903d91602b57fd5bf360028401549160405160208101918583526040820152604081526123e9606082611d57565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b038316908115612491577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600d602092825f52600c810184528560405f2055016124848154611f8e565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b6124fe915060203d602011611afe57611af18183611d57565b5f6123ae565b506020813d602011612539575b8161251e60209383611d57565b81010312610484575160ff811681036104845760ff90612336565b3d9150612511565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f8051602061291383398151915254906009820190815461268d579091600801905f5b81518110156125ff57600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016125c0565b5080519291506001600160401b038311611d7857680100000000000000008311611d78578154838355808410612667575b50602001905f5260205f205f5b83811061264a5750505050565b82516001600160a01b03168183015560209092019160010161263d565b825f528360205f2091820191015b8181106126825750612630565b5f8155600101612675565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161041a57805b6126f7575b505f9150565b804083810361270857506001925050565b1561271c57801561041a575f1901806126ec565b6126f1565b356001600160a01b03811681036104845790565b356001600160801b03811681036104845790565b90816020910312610484575180151581036104845790565b903590601e198136030182121561048457018035906001600160401b0382116104845760200191606082023603831361048457565b356001600160e01b0319811681036104845790565b60ff5f805160206129338339815191525460401c16156127c757565b631afcd79f60e31b5f5260045ffd5b8151919060418303612806576127ff9250602082015190606060408401519301515f1a90612870565b9192909190565b50505f9160029190565b600481101561072a5780612822575050565b600181036128395763f645eedf60e01b5f5260045ffd5b60028103612854575063fce698f760e01b5f5260045260245ffd5b60031461285e5750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116128e7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610be5575f516001600160a01b038116156128dd57905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205b21b15c839d0898ccc6206da2a4be14eda15d1a5e91a72c0e2b08ae2f9a2e3e64736f6c634300081a0033","sourceMap":"879:18203:159:-:0;;;;;;;8837:64:26;879:18203:159;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;879:18203:159;;7985:34:26;7981:146;;-1:-1:-1;879:18203:159;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;879:18203:159;-1:-1:-1;;;;;879:18203:159;;;8837:64:26;879:18203:159;;;8087:29:26;;879:18203:159;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;879:18203:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611ce75750806301b1d156146113825780630834fecc1461134b5780631c149d8a1461120357806328e24b3d146111d95780632dacfb69146111ac5780633d43b4181461115a5780634083acec14611125578063444d9172146110ed5780635686cad51461103b578063666d124c14610f3f5780636c2eb35014610d375780636ef25c3a14610d0c578063715018a614610ca557806378ee5dec14610c6d5780638028861a14610bf05780638074b45514610b3157806388f50cf014610af95780638da5cb5b14610ac55780638febbd5914610a785780639067088e14610a305780639670822614610a0757806396a2ddfa146109da578063a6bbbe1c1461092f578063c13911e8146108e9578063ca1e781914610872578063d3fd63641461083c578063e71731e41461074f578063e97d3eb31461052a578063ed612f8c146104fd578063edc87225146104db578063efd81abc146104ae578063f2fde38b146104885763f8453e7c14610191575f80fd5b346104845760a0366003190112610484576101aa611d41565b602435906001600160a01b038216820361048457604435916001600160a01b038316830361048457606435926001600160a01b0384168403610484576084356001600160401b038111610484573660238201121561048457610216903690602481600401359101611dfe565b905f805160206129338339815191525460ff8160401c1615946001600160401b0382168015908161047c575b6001149081610472575b159081610469575b5061045a5767ffffffffffffffff1982166001175f8051602061293383398151915255610297918661042e575b5061028a6127ab565b6102926127ab565b611fda565b60409485516102a68782611d57565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102da61226c565b5190205f19810190811161041a5786519060208201908152602082526103008883611d57565b60ff19915190201690815f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161041a57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60068301556007919091018054680a000000009502f9006001600160c01b03199091161790556103c39061259d565b6103c957005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f8051602061293383398151915254165f80516020612933833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f80516020612933833981519152555f610281565b63f92ee8a960e01b5f5260045ffd5b9050155f610254565b303b15915061024c565b879150610242565b5f80fd5b34610484576020366003190112610484576104ac6104a4611d41565b61029261226c565b005b34610484575f36600319011261048457602060065f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760206104f5611f9c565b604051908152f35b34610484575f36600319011261048457602060095f80516020612913833981519152540154604051908152f35b34610484576040366003190112610484576004356001600160401b0381116104845736602382011215610484578060040135906001600160401b038211610484573660248360061b83010111610484576024356001600160401b0381116104845761059a83913690600401611d11565b90925f8051602061291383398151915254906060925f95600a8401945b8688101561073e578760061b840197610609604460248b01359a01926105dc84611f81565b60405160208101918d8352151560f81b604082015260218152610600604182611d57565b51902090611e62565b98805f528760205260ff60405f205416600381101561072a576001036106d557610634600193611f81565b15610692577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600b8a016106818154611f8e565b9055604051908152a25b01966105b7565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a261068b565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104ac9350602081519101206120e7565b34610484576020366003190112610484576004356001600160401b0381116104845761077f903690600401611d11565b61078761226c565b5f805160206129138339815191525460088101906009015f5b81548110156107d7575f82815260208082208301546001600160a01b0316825284905260409020805460ff191690556001016107a0565b5080545f825591508161081e575b6107f86107f3368587611dfe565b61259d565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107e5575f8155600101610829565b34610484575f3660031901126104845760206001600160401b0360075f8051602061291383398151915254015416604051908152f35b34610484575f3660031901126104845761089c60095f805160206129138339815191525401611eee565b6040518091602082016020835281518091526020604084019201905f5b8181106108c7575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108b9565b3461048457602036600319011261048457600a5f8051602061291383398151915254016004355f5260205260ff60405f205416604051600382101561072a576020918152f35b34610484576020366003190112610484576004356001600160801b03811690818103610484577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d7409160209161098261226c565b5f8051602061291383398151915254600701805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610484575f366003190112610484576020600d5f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760205f8051602061291383398151915254604051908152f35b3461048457602036600319011261048457610a49611d41565b600c5f8051602061291383398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461048457602036600319011261048457610a91611d41565b60085f8051602061291383398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610484575f366003190112610484575f805160206128f3833981519152546040516001600160a01b039091168152602090f35b34610484575f366003190112610484575f8051602061291383398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610484576044356001600160401b03811161048457610b5c903690600401611dd1565b90606435916001600160801b038316830361048457610b80836024356004356122bf565b6001600160a01b0390911692909190833b1561048457610bb75f9360405196879485946306f0ee9760e51b86523260048701611eb1565b038183855af1918215610be557602092610bd5575b50604051908152f35b5f610bdf91611d57565b82610bcc565b6040513d5f823e3d90fd5b34610484576020366003190112610484576004356001600160401b0381168091036104845760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c4161226c565b5f8051602061291383398151915254600701805467ffffffffffffffff191682179055604051908152a1005b34610484575f366003190112610484575f8051602061291383398151915254600201546040516001600160a01b039091168152602090f35b34610484575f36600319011261048457610cbd61226c565b5f805160206128f383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610484575f366003190112610484576020610d26611f3f565b6001600160801b0360405191168152f35b34610484575f36600319011261048457610d4f61226c565b5f805160206129338339815191525460ff8160401c168015610f2b575b61045a5768ffffffffffffffffff191668010000000000000002175f80516020612933833981519152555f80516020612913833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dd290600901611eee565b906040918251610de28482611d57565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e1661226c565b5190205f19810190811161041a578351906020820190815260208252610e3c8583611d57565b60ff19915190201694855f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161041a574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610efe9061259d565b60ff60401b195f8051602061293383398151915254165f80516020612933833981519152555160028152a1005b5060026001600160401b0382161015610d6c565b60a036600319011261048457610f53611d41565b6044356024356064356001600160401b03811161048457610f78903690600401611dd1565b90608435946001600160801b038616860361048457610f988686866122bf565b949060018060a01b0316956040519060208201928352604082015260408152610fc2606082611d57565b519020853b1561048457604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610be55761102b575b50833b1561048457610bb75f9360405196879485946306f0ee9760e51b86523260048701611eb1565b5f61103591611d57565b85611002565b34610484576020366003190112610484576004356001600160401b03811161048457366023820112156104845761107c903690602481600401359101611d8c565b61108461226c565b602081519101205f19810190811161041a576040519060208201908152602082526110b0604083611d57565b9051902060ff19165f80516020612913833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610484575f366003190112610484575f8051602061291383398151915254600101546040516001600160a01b039091168152602090f35b34610484575f36600319011261048457602065ffffffffffff60055f8051602061291383398151915254015416604051908152f35b3461048457602036600319011261048457611173611d41565b61117b61226c565b5f805160206129138339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610484575f36600319011261048457602060045f80516020612913833981519152540154604051908152f35b34610484575f3660031901126104845760205f805160206129138339815191525454604051908152f35b34610484576040366003190112610484576024356004358115801590611341575b156112fc57600a5f80516020612913833981519152540190805f528160205260ff60405f205416600381101561072a5761129e577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611224565b34610484575f366003190112610484576020610d266001600160801b0360075f8051602061291383398151915254015460401c1690565b34610484576040366003190112610484576004356001600160401b038111610484576113b2903690600401611d11565b906024356001600160401b038111610484576113d2903690600401611d11565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611cd85760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b85831015611ca1578260051b84013595609e1985360301871215610484575f805160206129138339815191525460048101805460408a8901013503611c5d5761147260608a890101356126de565b15611c0c5788879995999894989693960135905565ffffffffffff600561149d6020878a010161204b565b9201911665ffffffffffff198254161790556060925f965b6114c5878301608081019061205e565b9050881015611b62576114e8886114e2898501608081019061205e565b90612093565b955f805160206129138339815191525461150188612721565b6001600160a01b03165f908152600c8201602052604090205415611b0557600301546001600160801b03906020906001600160a01b031660448a5f611551606061154a84612721565b9301612735565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610be557611ad9575b506001600160a01b0361159c88612721565b16995f9160605b6115b060808b018b612761565b9050841015611716576115c660808b018b612761565b85919510156117025760206116708f93826115e781606087028b0101612721565b6115f86040606088028c0101612735565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261163e606482611d57565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611d57565b94611682602060608402830101612721565b611693604060608502840101612735565b933b15610484578f5f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610be5576001926116f2575b5001926115a3565b5f6116fc91611d57565b8e6116ea565b634e487b7160e01b5f52603260045260245ffd5b9690919599939492509996996060915f5b61173460a08c018c61205e565b905081101561197157806117f58f92611755906114e28f60a081019061205e565b9561176260208801612721565b6060610600603460548b61178561177c60408301836120b5565b96909201612735565b8d608061179460a08301612796565b9188604051998a96602088019c8d853590526001600160601b03199060601b166040890152888801378501936001600160801b031990831b16868501520135606483015263ffffffff60e01b16608482015203016014810184520182611d57565b9460808101356118a85761180b60208201612721565b9261181960408301836120b5565b91909461182860608501612735565b823b15610484575f9485916001600160801b036118766040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e91565b9116606483015203925af1918215610be557600192611898575b505b01611727565b5f6118a291611d57565b8f611890565b916118b560208401612721565b906118c360408501856120b5565b6118d260608794939401612735565b956118df60a08201612796565b94833b156104845761192b975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e91565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610be557600192611961575b50611892565b5f61196b91611d57565b8f61195b565b50959496929b939998909a91604082019160018060a01b0361199284612721565b16611a82575b602081013591863b15610484575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610be557600197611a6397611a72575b506119f560606119ee6119e886612721565b97612721565b9401612735565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261060060b882611d57565b940196929790979491946114b5565b5f611a7c91611d57565b5f6119d6565b611a8b83612721565b863b1561048457604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610be557611ac9575b50611998565b5f611ad391611d57565b8e611ac3565b611af99060203d8111611afe575b611af18183611d57565b810190612749565b61158a565b503d611ae7565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b90611c0292975093600193949895987fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051838b01358152a1611bac6020828a010161204b565b91602081519101206060604051926020840194818c0135865265ffffffffffff60d01b9060d01b1660408501526040818c01013560468501528a010135606683015260868201526086815261060060a682611d57565b9401919093611424565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b9084611cb392602081519101206120e7565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610484575f36600319011261048457602090600b5f805160206129138339815191525401548152f35b9181601f84011215610484578235916001600160401b038311610484576020808501948460051b01011161048457565b600435906001600160a01b038216820361048457565b90601f801991011681019081106001600160401b03821117611d7857604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611d785760405191611db5601f8201601f191660200184611d57565b829481845281830111610484578281602093845f960137010152565b9181601f84011215610484578235916001600160401b038311610484576020838186019501011161048457565b9092916001600160401b038411611d78578360051b916020604051611e2582860182611d57565b809681520192810191821161048457915b818310611e4257505050565b82356001600160a01b038116810361048457815260209283019201611e36565b602080611e8f928195946040519682889351918291018585015e8201908382015203018085520183611d57565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611ee16001600160801b0393606095859360018060a01b03168852608060208901526080880191611e91565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611f1d575050611e8f92500383611d57565b84546001600160a01b0316835260019485019487945060209093019201611f08565b5f8051602061291383398151915254600701546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361041a5790565b3580151581036104845790565b5f19811461041a5760010190565b5f8051602061291383398151915254600660098201549101549081810291818304149015171561041a5761270f810180911161041a57612710900490565b6001600160a01b03168015612038575f805160206128f383398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff811681036104845790565b903590601e198136030182121561048457018035906001600160401b03821161048457602001918160051b3603831361048457565b91908110156117025760051b8101359060be1981360301821215610484570190565b903590601e198136030182121561048457018035906001600160401b0382116104845760200191813603831361048457565b905f805160206129138339815191525490612100611f9c565b9260405190602082019081526020825261211b604083611d57565b612157603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611d57565b5190205f9260080191835b868510156122605761219861218f6121896121828860051b8601866120b5565b3691611d8c565b856127d6565b90929192612810565b6001600160a01b03165f9081526020859052604090205460ff1615612225576121c090611f8e565b938585146121d15760010193612162565b505050509091505b106121e057565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506121d9565b5f805160206128f3833981519152546001600160a01b0316330361228c57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161041a57565b9291925f805160206129138339815191525491815f52600a830160205260ff60405f205416600381101561072a57600203612541576122fc611f3f565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610be5575f90612504575b60ff915016604d811161041a5760646123686020936123636001600160801b038095600a0a16809c61229f565b61229f565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610be5575f916124e5575b50156124a0576e5af43d82803e903d91602b57fd5bf360028401549160405160208101918583526040820152604081526123e9606082611d57565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b038316908115612491577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600d602092825f52600c810184528560405f2055016124848154611f8e565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b6124fe915060203d602011611afe57611af18183611d57565b5f6123ae565b506020813d602011612539575b8161251e60209383611d57565b81010312610484575160ff811681036104845760ff90612336565b3d9150612511565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f8051602061291383398151915254906009820190815461268d579091600801905f5b81518110156125ff57600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016125c0565b5080519291506001600160401b038311611d7857680100000000000000008311611d78578154838355808410612667575b50602001905f5260205f205f5b83811061264a5750505050565b82516001600160a01b03168183015560209092019160010161263d565b825f528360205f2091820191015b8181106126825750612630565b5f8155600101612675565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161041a57805b6126f7575b505f9150565b804083810361270857506001925050565b1561271c57801561041a575f1901806126ec565b6126f1565b356001600160a01b03811681036104845790565b356001600160801b03811681036104845790565b90816020910312610484575180151581036104845790565b903590601e198136030182121561048457018035906001600160401b0382116104845760200191606082023603831361048457565b356001600160e01b0319811681036104845790565b60ff5f805160206129338339815191525460401c16156127c757565b631afcd79f60e31b5f5260045ffd5b8151919060418303612806576127ff9250602082015190606060408401519301515f1a90612870565b9192909190565b50505f9160029190565b600481101561072a5780612822575050565b600181036128395763f645eedf60e01b5f5260045ffd5b60028103612854575063fce698f760e01b5f5260045260245ffd5b60031461285e5750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116128e7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610be5575f516001600160a01b038116156128dd57905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205b21b15c839d0898ccc6206da2a4be14eda15d1a5e91a72c0e2b08ae2f9a2e3e64736f6c634300081a0033","sourceMap":"879:18203:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;879:18203:159;;;;;;4301:16:26;879:18203:159;-1:-1:-1;;;;;879:18203:159;;4726:16:26;;:34;;;;879:18203:159;4805:1:26;4790:16;:50;;;;879:18203:159;4855:13:26;:30;;;;879:18203:159;4851:91:26;;;-1:-1:-1;;879:18203:159;;4805:1:26;879:18203:159;-1:-1:-1;;;;;;;;;;;879:18203:159;6961:1:26;;879:18203:159;4979:67:26;;879:18203:159;6893:76:26;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;879:18203:159;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:18203:159;3042:27;;-1:-1:-1;;879:18203:159;;;;;;;;;3023:52;879:18203;3023:52;;879:18203;;;;3023:52;;;;;;:::i;:::-;879:18203;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:18203;3182:20;;879:18203;;1742:12;879:18203;1742:12;;879:18203;;;;1732:27;;1170:66;;4805:1:26;1769:13:159;;879:18203;;-1:-1:-1;;;;;;879:18203:159;;;-1:-1:-1;;;;;879:18203:159;;;;;;;1802:18;;;879:18203;;;;;;;;;;;;;;1845:18;;;879:18203;;;;;;;;;;;;;1924:4;1888:33;;;1170:66;1966:17;;;;;879:18203;;;-1:-1:-1;;;;;;879:18203:159;;;;;;2060:15;;;:::i;:::-;5066:101:26;;879:18203:159;5066:101:26;879:18203:159;5142:14:26;879:18203:159;-1:-1:-1;;;879:18203:159;-1:-1:-1;;;;;;;;;;;879:18203:159;;-1:-1:-1;;;;;;;;;;;879:18203:159;;4805:1:26;879:18203:159;;5142:14:26;879:18203:159;;;;;;;;;;;;;4979:67:26;-1:-1:-1;;879:18203:159;;;-1:-1:-1;;;;;;;;;;;879:18203:159;4979:67:26;;;4851:91;6498:23;;;879:18203:159;4908:23:26;879:18203:159;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;879:18203:159;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;2357:1:25;879:18203:159;;:::i;:::-;2303:62:25;;:::i;2357:1::-;879:18203:159;;;;;;;-1:-1:-1;;879:18203:159;;;;;5198:33;-1:-1:-1;;;;;;;;;;;879:18203:159;5198:33;879:18203;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;5576:21;-1:-1:-1;;;;;;;;;;;879:18203:159;5576:21;879:18203;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;879:18203:159;8783:34;879:18203;8833:13;879:18203;9208:12;;;;8828:824;8881:3;8848:31;;;;;;879:18203;;;;;;9082:55;17789:20;879:18203;;;;17789:20;;;;;;:::i;:::-;879:18203;;;17753:57;;879:18203;;;;;;;;;;;;;17753:57;;;;;;:::i;:::-;879:18203;17743:68;;9082:55;;:::i;:::-;879:18203;;;;;;;;;;;;;;;;;;;;9208:53;879:18203;;9324:20;879:18203;9324:20;;:::i;:::-;;;;9476:30;879:18203;;;;;;;;;;;;9387:19;879:18203;;;;;;;;9424:26;;;:28;879:18203;;9424:28;:::i;:::-;1170:66;;879:18203;;;;;9476:30;9320:322;879:18203;8833:13;;;9320:322;9596:31;879:18203;;;;;;;;;;;;;;;;;;;;;;;;9596:31;9320:322;;879:18203;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;;;8848:31;9716:10;8848:31;;879:18203;;;;;9682:32;9716:10;:::i;879:18203::-;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;18320:17;;;;18206:21;;879:18203;18236:3;879:18203;;18202:32;;;;;879:18203;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;18187:13;;18202:32;-1:-1:-1;879:18203:159;;;;;;-1:-1:-1;879:18203:159;;;18182:177;6137:38;879:18203;;;;;:::i;:::-;6137:38;:::i;:::-;6191:22;879:18203;6191:22;;879:18203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;-1:-1:-1;;;;;6390:17:159;-1:-1:-1;;;;;;;;;;;879:18203:159;6390:17;879:18203;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;5920:21;-1:-1:-1;;;;;;;;;;;879:18203:159;5920:21;879:18203;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;4662:12;-1:-1:-1;;;;;;;;;;;879:18203:159;4662:12;879:18203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;6969:38;2303:62:25;879:18203:159;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;6914:21;;879:18203;;-1:-1:-1;;879:18203:159;;;;;;;;;;;;;;6969:38;879:18203;;;;;;;-1:-1:-1;;879:18203:159;;;;;4815:20;-1:-1:-1;;;;;;;;;;;879:18203:159;4815:20;879:18203;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;:::i;:::-;4983:15;-1:-1:-1;;;;;;;;;;;879:18203:159;4983:15;:24;879:18203;;;;;;-1:-1:-1;879:18203:159;;;;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;:::i;:::-;5753:17;-1:-1:-1;;;;;;;;;;;879:18203:159;5753:17;:28;879:18203;;;;;;-1:-1:-1;879:18203:159;;;;;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;3847:18;;879:18203;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;7841:50;879:18203;;;;;7841:50;:::i;:::-;-1:-1:-1;;;;;879:18203:159;;;;;;;7902:75;;;;;;879:18203;;;;;;;;;;;;7902:75;;7931:9;879:18203;7902:75;;;:::i;:::-;;;;;;;;;;;;879:18203;7902:75;;;879:18203;;;;;;;;7902:75;879:18203;7902:75;;;:::i;:::-;;;;;879:18203;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;6587:30;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;6540:17;;879:18203;;-1:-1:-1;;879:18203:159;;;;;;;;;;6587:30;879:18203;;;;;;;-1:-1:-1;;879:18203:159;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;3996:18;;879:18203;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;;-1:-1:-1;;;;;;879:18203:159;;;;;;;-1:-1:-1;;;;;879:18203:159;3975:40:25;879:18203:159;;3975:40:25;879:18203:159;;;;;;;-1:-1:-1;;879:18203:159;;;;;;;:::i;:::-;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;;;;;;6431:44:26;;;;879:18203:159;6427:105:26;;-1:-1:-1;;879:18203:159;;;-1:-1:-1;;;;;;;;;;;879:18203:159;-1:-1:-1;;;;;;;;;;;879:18203:159;;2227:16;;879:18203;2144:1;2276:21;;879:18203;2330:21;;;879:18203;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;2396:24;;879:18203;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:18203:159;3042:27;;-1:-1:-1;;879:18203:159;;;;;;;;;3023:52;879:18203;3023:52;;879:18203;;;;3023:52;;;;;;:::i;:::-;879:18203;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:18203;3182:20;;879:18203;;2567:12;879:18203;2567:12;879:18203;;;;2557:27;1170:66;;6593:4:26;2594:13:159;;879:18203;;-1:-1:-1;;;;;;879:18203:159;;;-1:-1:-1;;;;;879:18203:159;;;;;;;2144:1;2627:18;;879:18203;;;;;;;;;;;;;;2330:21;2670:18;;;879:18203;;;;;;;;;;;;;;;;6656:20:26;;879:18203:159;;-1:-1:-1;2728:15:159;;;:::i;:::-;-1:-1:-1;;;879:18203:159;-1:-1:-1;;;;;;;;;;;879:18203:159;;-1:-1:-1;;;;;;;;;;;879:18203:159;;2144:1;879:18203;;6656:20:26;879:18203:159;6431:44:26;879:18203:159;2144:1;-1:-1:-1;;;;;879:18203:159;;6450:25:26;;6431:44;;879:18203:159;;;-1:-1:-1;;879:18203:159;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;8288:50;;;;;:::i;:::-;879:18203;;;;;;;;;;;8463:30;879:18203;8463:30;;879:18203;;;;;;;;8463:30;;;879:18203;8463:30;;:::i;:::-;879:18203;8453:41;;8401:94;;;;;879:18203;;-1:-1:-1;;;8401:94:159;;-1:-1:-1;;;;;879:18203:159;;;;8401:94;;879:18203;;;;;-1:-1:-1;879:18203:159;;;-1:-1:-1;8401:94:159;;;;;;;;;879:18203;8506:73;;;;;;;879:18203;;;;;;;;;;;;8506:73;;8533:9;879:18203;8506:73;;;:::i;8401:94::-;879:18203;8401:94;;;:::i;:::-;;;;879:18203;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;879:18203:159;;;;;3042:27;879:18203;;;;;;;;;;;3023:52;879:18203;3023:52;;879:18203;;;;3023:52;;;879:18203;3023:52;;:::i;:::-;879:18203;;3013:63;;-1:-1:-1;;3013:89:159;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:18203;;3182:20;879:18203;;;;;;;-1:-1:-1;;879:18203:159;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;4140:13;879:18203;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;3681:35;-1:-1:-1;;;;;;;;;;;879:18203:159;3681:35;879:18203;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:18203:159;4279:13;;879:18203;;-1:-1:-1;;;;;;879:18203:159;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;3504:30;879:18203;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;;;7263:15;;;;;:35;;879:18203;;;;7399:12;-1:-1:-1;;;;;;;;;;;879:18203:159;7399:12;879:18203;;;;;;;;;;;;;;;;;;;;;7572:43;879:18203;;;;;;;;;;;7527:29;879:18203;;;;;;;;;;;;;;;;;7572:43;879:18203;;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;;;;7263:35;7282:11;879:18203;7282:11;:16;;7263:35;;879:18203;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;6751:21:159;-1:-1:-1;;;;;;;;;;;879:18203:159;6751:21;879:18203;;;;6630:149;;879:18203;;;;;;-1:-1:-1;;879:18203:159;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;:::i;:::-;516:66:62;7368:53:64;;;;1292:93:62;;1503:4;516:66;7628:52:64;879:18203:159;;;9993:3;9959:32;;;;;;879:18203;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;12466:30;;879:18203;;;;;;12500:34;879:18203;12466:68;879:18203;;12598:49;879:18203;;;;12617:29;879:18203;12598:49;:::i;:::-;879:18203;;;;;;;;;;;;;;;;1170:66;;879:18203;;12933:30;879:18203;;;;12933:30;;:::i;:::-;12895:35;;879:18203;;;;;;;;;;;13020:13;879:18203;13015:320;13075:3;13039:27;879:18203;;;13039:27;;;;;:::i;:::-;13035:38;;;;;;;13137:30;879:18203;13137:27;879:18203;;;13039:27;;;;13137;:::i;:::-;:30;;:::i;:::-;879:18203;-1:-1:-1;;;;;;;;;;;879:18203:159;14191:23;;;:::i;:::-;-1:-1:-1;;;;;879:18203:159;;;;;14175:15;;;879:18203;;;;;;14175:45;879:18203;;14328:18;;879:18203;-1:-1:-1;;;;;879:18203:159;;;-1:-1:-1;;;;;879:18203:159;;14383:23;879:18203;14408:30;879:18203;14383:23;;;:::i;:::-;14408:30;;;:::i;:::-;879:18203;;-1:-1:-1;;;14357:82:159;;-1:-1:-1;;;;;879:18203:159;;;;14357:82;;879:18203;;;;;;;;;;;;;;-1:-1:-1;14357:82:159;;;;;;;;13075:3;-1:-1:-1;;;;;;14480:23:159;;;:::i;:::-;879:18203;;;;;14615:3;14579:27;13039;14579;;;;:::i;:::-;14575:38;;;;;;;14667:27;13039;14579;;14667;;:::i;:::-;879:18203;;;;;;;;;;;;14818:22;879:18203;;;;;;14818:22;;:::i;:::-;14842:16;879:18203;;;;;;14842:16;;:::i;:::-;879:18203;;14779:80;;;;879:18203;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;13039:27;879:18203;;;;;;;14779:80;;;;;;:::i;:::-;879:18203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14779:80;;879:18203;;;;;;:::i;:::-;;14935:22;879:18203;;;;;;14818:22;14935;:::i;:::-;14959:16;879:18203;;;;;;14842:16;14959;:::i;:::-;14888:88;;;;;879:18203;;;;14779:80;879:18203;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;14888:88;;879:18203;;;;;;14888:88;;879:18203;;;;;;;;;;;;;;;;14888:88;;;;;;;1503:4:62;14888:88:159;;;14615:3;;879:18203;14560:13;;;14888:88;879:18203;14888:88;;;:::i;:::-;;;;879:18203;;;;;;;;;;;;14575:38;;;;;;;;;;;;;879:18203;15040:13;879:18203;15092:3;15059:24;;;;;;:::i;:::-;15055:35;;;;;;;15059:24;15213:67;15059:24;;15154:27;15059:24;15154;15059;;;;15154;;:::i;:27::-;17382;;879:18203;17382:27;;;:::i;:::-;879:18203;17312:291;879:18203;;17427:23;17468:21;17427:23;879:18203;17427:23;;;;:::i;:::-;17468:21;;;;;:::i;:::-;17556:33;13039:27;17556:33;15059:24;17556:33;;;:::i;:::-;879:18203;;;;17312:291;;;879:18203;17312:291;;879:18203;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;17507:28;879:18203;14779:80;879:18203;;;;;;;;;;;17312:291;;;;;;;;;;:::i;15213:67::-;17507:28;13039:27;17507:28;;879:18203;13039:27;;15420;879:18203;17382:27;;15420;:::i;:::-;17427:23;15449;879:18203;17427:23;;15449;;:::i;:::-;17468:21;;;15474;879:18203;17468:21;;15474;:::i;:::-;15355:158;;;;;879:18203;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;15355:158;;879:18203;;15355:158;;879:18203;;;;;;;;;;;13039:27;879:18203;;;;;;;;;:::i;:::-;;;14779:80;879:18203;;;15355:158;;;;;;;;;1503:4:62;15355:158:159;;;15295:556;;;879:18203;15040:13;;15355:158;879:18203;15355:158;;;:::i;:::-;;;;15295:556;17382:27;15595;879:18203;17382:27;;15595;:::i;:::-;17427:23;15644;879:18203;17427:23;;15644;;:::i;:::-;15689:21;879:18203;17468:21;;;;;15689;:::i;:::-;17556:33;15785;15059:24;17556:33;;15785;:::i;:::-;15552:284;;;;;;879:18203;;;;13039:27;879:18203;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;15552:284;;879:18203;;;;;;;15552:284;;879:18203;15059:24;879:18203;;;;;;;;;:::i;:::-;;;;;;;17507:28;879:18203;14779:80;879:18203;;;-1:-1:-1;;;;;;879:18203:159;;;;;15552:284;;;;;;;;;1503:4:62;15552:284:159;;;15295:556;;;;15552:284;879:18203;15552:284;;;:::i;:::-;;;;15055:35;;;;;;;;;;;;;879:18203;15875:25;;879:18203;;;;;;15875:25;;;:::i;:::-;879:18203;15871:121;;15035:826;879:18203;16026:28;;879:18203;16002:53;;;;;;879:18203;;;;;;;;;;;;;16002:53;;;879:18203;16002:53;;879:18203;16002:53;;;;;;;1503:4:62;16002:53:159;13277:47;16002:53;;;15035:826;16107:23;16225:30;879:18203;16186:25;16107:23;;;:::i;:::-;16186:25;;:::i;:::-;14408:30;;16225;:::i;:::-;879:18203;;;;;;16269:27;879:18203;;;;;;16310:25;879:18203;;;17043:103;879:18203;17043:103;;879:18203;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;13039:27;879:18203;;;;;;;;;;;;;;;17043:103;;;;;;:::i;13277:47::-;13075:3;879:18203;13020:13;;;;;;;;;;16002:53;879:18203;16002:53;;;:::i;:::-;;;;15871:121;15955:25;;;:::i;:::-;15930:51;;;;;879:18203;;-1:-1:-1;;;15930:51:159;;-1:-1:-1;;;;;879:18203:159;;;;15930:51;;879:18203;-1:-1:-1;879:18203:159;;;-1:-1:-1;15930:51:159;;;;;;;;;15871:121;;;;15930:51;879:18203;15930:51;;;:::i;:::-;;;;14357:82;;;879:18203;14357:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;879:18203;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14779:80:159;879:18203;;;;;;13035:38;;10193:57;13035:38;;;;1503:4:62;13035:38:159;;;;;13350:41;879:18203;;;;;;;;;13350:41;13482:30;879:18203;;;;12933:30;13482;:::i;:::-;879:18203;;;;;;13617:28;879:18203;;;16629:101;879:18203;16629:101;;879:18203;;;;;;;;;;;;;;;;;;;;;;12500:34;879:18203;;;;;;;12617:29;879:18203;;;;;;;;;;16629:101;;;;;;:::i;10193:57::-;9993:3;879:18203;9944:13;;;;;879:18203;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14779:80:159;879:18203;;;;;;;14779:80;879:18203;;;;;;;;;;;;;;;;;;;;;;;9959:32;;;10326:10;9959:32;879:18203;;;;;10291:33;10326:10;:::i;:::-;879:18203;516:66:62;7628:52:64;879:18203:159;1292:93:62;1344:30;;;879:18203:159;1344:30:62;879:18203:159;;1344:30:62;879:18203:159;;;;;;-1:-1:-1;;879:18203:159;;;;;;4491:26;-1:-1:-1;;;;;;;;;;;879:18203:159;4491:26;879:18203;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:18203:159;;;;;;:::o;:::-;;;14779:80;;879:18203;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;:::o;:::-;;;;-1:-1:-1;879:18203:159;;;;;-1:-1:-1;879:18203:159;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;14779:80;879:18203;;-1:-1:-1;;879:18203:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;;;;;;;-1:-1:-1;;879:18203:159;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;-1:-1:-1;879:18203:159;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;-1:-1:-1;879:18203:159;;;;;;;;7020:113;-1:-1:-1;;;;;;;;;;;879:18203:159;6390:17;;879:18203;-1:-1:-1;;;;;879:18203:159;;;-1:-1:-1;;;;;879:18203:159;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;7020:113;:::o;879:18203::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;879:18203:159;;;;;;;:::o;5244:204::-;-1:-1:-1;;;;;;;;;;;879:18203:159;5198:33;5576:21;;;879:18203;5198:33;;879:18203;;;;;;;;;;;;;;;;5428:4;879:18203;;;;;;;5436:5;879:18203;;5244:204;:::o;3405:215:25:-;-1:-1:-1;;;;;879:18203:159;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;879:18203:159;;-1:-1:-1;;;;;;879:18203:159;;;;;;;-1:-1:-1;;;;;879:18203:159;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;879:18203:159;;3509:1:25;3534:31;879:18203:159;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;:::o;11446:844::-;;-1:-1:-1;;;;;;;;;;;879:18203:159;11614:21;;;:::i;:::-;879:18203;;;11714:26;;;;879:18203;;;11714:26;;;;879:18203;11714:26;;:::i;:::-;2858:45:68;879:18203:159;;;2858:45:68;;11714:26:159;2858:45:68;;879:18203:159;;;;;;11676:4;879:18203;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;;;2858:45:68;;14779:80:159;;2858:45:68;;;;;;:::i;:::-;879:18203:159;2848:56:68;;-1:-1:-1;;11975:17:159;;;-1:-1:-1;11832:3:159;11809:21;;;;;;3915:8:66;3859:27;879:18203:159;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:66;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;879:18203:159;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;;;12027:17;;;:::i;:::-;:30;;;;12023:82;;879:18203;;11794:13;;;12023:82;12081:5;;;;;;;11789:416;12223:28;879:18203;;11446:844::o;879:18203::-;;;-1:-1:-1;;;879:18203:159;;11714:26;879:18203;;;;;;;;;;;;;;;;;11971:224;879:18203;;-1:-1:-1;;;879:18203:159;;11714:26;879:18203;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;11809:21;;;;;;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;879:18203:159;-1:-1:-1;;;;;879:18203:159;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;879:18203:159;;-1:-1:-1;2763:40:25;879:18203:159;;-1:-1:-1;;;;;879:18203:159;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;:::o;10386:1054::-;;;;-1:-1:-1;;;;;;;;;;;879:18203:159;;;-1:-1:-1;879:18203:159;10592:12;;;879:18203;;;;-1:-1:-1;879:18203:159;;;;;;;;;10616:19;10592:43;879:18203;;10720:9;;:::i;:::-;879:18203;10856:18;;879:18203;;;;-1:-1:-1;;;10841:45:159;;10856:18;;;;879:18203;;;;;10841:45;;879:18203;;-1:-1:-1;;;;;879:18203:159;10841:45;;;;;;-1:-1:-1;10841:45:159;;;10386:1054;879:18203;;;;;;;;;17946:73;10919:41;879:18203;;10919:32;-1:-1:-1;;;;;879:18203:159;;10592:12;879:18203;;10919:32;;;:::i;:::-;:41;:::i;:::-;879:18203;;;;-1:-1:-1;;;17946:73:159;;17986:9;10841:45;17946:73;;879:18203;18005:4;879:18203;;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;-1:-1:-1;;;;;;;879:18203:159;17946:73;;;;;;;-1:-1:-1;17946:73:159;;;10386:1054;879:18203;;;;3743:569:44;10616:19:159;11202:18;;879:18203;;;;;11232:30;;879:18203;;;;;;;;;11232:30;;;879:18203;11232:30;;:::i;:::-;879:18203;11222:41;;3743:569:44;;;;;;;;-1:-1:-1;3743:569:44;;;;;;;;879:18203:159;3743:569:44;;;-1:-1:-1;3743:569:44;879:18203:159;-1:-1:-1;;;;;879:18203:159;;;4325:22:44;;4321:85;;11356:31:159;11275:24;11318:20;879:18203;11275:24;879:18203;-1:-1:-1;879:18203:159;11275:15;;;879:18203;;;;-1:-1:-1;879:18203:159;1170:66;11318:20;:22;879:18203;;11318:22;:::i;:::-;1170:66;;879:18203;;;;;11356:31;11398:35;10386:1054;:::o;4321:85:44:-;4370:25;;;-1:-1:-1;4370:25:44;10841:45:159;-1:-1:-1;4370:25:44;879:18203:159;;;-1:-1:-1;;;879:18203:159;;;10841:45;879:18203;;;;;;;;;;;;;17946:73;;879:18203;17946:73;;;;879:18203;17946:73;879:18203;17946:73;;;;;;;:::i;:::-;;;;10841:45;;879:18203;10841:45;;879:18203;10841:45;;;;;;879:18203;10841:45;;;:::i;:::-;;;879:18203;;;;;;;;;;;;;10841:45;;;;;;-1:-1:-1;10841:45:159;;879:18203;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;18410:442;-1:-1:-1;;;;;;;;;;;879:18203:159;18544:21;;;;879:18203;;;;;18633:13;;18749:17;;;-1:-1:-1;18677:3:159;879:18203;;18648:27;;;;;879:18203;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;-1:-1:-1;879:18203:159;;;;;;;;;;;;-1:-1:-1;;879:18203:159;;;;;;;;;18633:13;;18648:27;-1:-1:-1;879:18203:159;;;18648:27;-1:-1:-1;;;;;;879:18203:159;;;;;;;;;;;;;;;;;;;18628:167;879:18203;;;;-1:-1:-1;879:18203:159;;-1:-1:-1;879:18203:159;-1:-1:-1;879:18203:159;;;;;;18410:442;;;;:::o;879:18203::-;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;;;-1:-1:-1;879:18203:159;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:18203:159;;;;;;;13668:338;;879:18203;;13765:12;879:18203;13765:12;879:18203;;;;13748:230;13783:5;;;13748:230;-1:-1:-1;879:18203:159;;-1:-1:-1;13668:338:159:o;13790:3::-;13823:12;;13853:11;;;;;-1:-1:-1;13780:1:159;;-1:-1:-1;;13884:11:159:o;13849:119::-;13920:8;13916:52;;879:18203;;;;-1:-1:-1;;879:18203:159;;13753:28;;13916:52;13948:5;;879:18203;;-1:-1:-1;;;;;879:18203:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;879:18203:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:18203:159;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;879:18203:159;;;;;;;:::o;7084:141:26:-;879:18203:159;-1:-1:-1;;;;;;;;;;;879:18203:159;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;2129:766:66;879:18203:159;;;2129:766:66;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:66;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;879:18203:159;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;879:18203:159;7378:38:66;;879:18203:159;;7439:23:66;;;7291:20;7439:23;879:18203:159;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;879:18203:159;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;879:18203:159;;;7291:20:66;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;879:18203:159;;;;;;-1:-1:-1;879:18203:159;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;879:18203:159;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,uint48,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"01b1d156","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","lastBlockCommitmentTimestamp()":"4083acec","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f\",\"dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0x5820512d311ba29e78123f3dc190ebbee7a68768035e14144d237816ef7673f1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7c129b4f9f5bb1da71f601302ab5b72acb3c0cbe63159e1b163014ab9e70cca2\",\"dweb:/ipfs/QmQKZANhbpescNoMfDSkZ3c3rnWCGuNoZ8XGaLsvASHs7y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct IRouter.OutgoingMessage[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xe617d8ee99b9f35a45b5591fe67cc6c60930a525933cafb2315eb45a1cd91d4f","urls":["bzz-raw://9d3b9e731c182559acb506fa22b833591a29cedf1d2f34656819736fb044cc8f","dweb:/ipfs/QmNPskadyFYM8zJMAQPAAYuLQCr3h3c8NLs2RQo4ZRQLq3"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0x5820512d311ba29e78123f3dc190ebbee7a68768035e14144d237816ef7673f1","urls":["bzz-raw://7c129b4f9f5bb1da71f601302ab5b72acb3c0cbe63159e1b163014ab9e70cca2","dweb:/ipfs/QmQKZANhbpescNoMfDSkZ3c3rnWCGuNoZ8XGaLsvASHs7y"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":76909,"exportedSymbols":{"Clones":[41840],"ECDSA":[45249],"IERC20":[43140],"IERC20Metadata":[43166],"IMirror":[73387],"IRouter":[73763],"IWrappedVara":[73774],"MessageHashUtils":[45550],"OwnableUpgradeable":[39387],"ReentrancyGuardTransient":[44045],"Router":[76908],"StorageSlot":[44581]},"nodeType":"SourceUnit","src":"39:19044:159","nodes":[{"id":75145,"nodeType":"PragmaDirective","src":"39:24:159","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75147,"nodeType":"ImportDirective","src":"65:74:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":44582,"symbolAliases":[{"foreign":{"id":75146,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"73:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75149,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":75148,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75151,"nodeType":"ImportDirective","src":"242:64:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":75150,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"250:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75153,"nodeType":"ImportDirective","src":"307:75:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":45250,"symbolAliases":[{"foreign":{"id":75152,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45249,"src":"315:5:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75155,"nodeType":"ImportDirective","src":"383:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":45551,"symbolAliases":[{"foreign":{"id":75154,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"391:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75157,"nodeType":"ImportDirective","src":"481:100:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":44046,"symbolAliases":[{"foreign":{"id":75156,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44045,"src":"489:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75159,"nodeType":"ImportDirective","src":"582:38:159","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":73764,"symbolAliases":[{"foreign":{"id":75158,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"590:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75161,"nodeType":"ImportDirective","src":"621:38:159","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":75160,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"629:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75163,"nodeType":"ImportDirective","src":"660:48:159","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":73775,"symbolAliases":[{"foreign":{"id":75162,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"668:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75165,"nodeType":"ImportDirective","src":"709:70:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":43141,"symbolAliases":[{"foreign":{"id":75164,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"717:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75167,"nodeType":"ImportDirective","src":"780:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":76909,"sourceUnit":43167,"symbolAliases":[{"foreign":{"id":75166,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"788:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76908,"nodeType":"ContractDefinition","src":"879:18203:159","nodes":[{"id":75176,"nodeType":"UsingForDirective","src":"958:24:159","nodes":[],"global":false,"libraryName":{"id":75174,"name":"ECDSA","nameLocations":["964:5:159"],"nodeType":"IdentifierPath","referencedDeclaration":45249,"src":"964:5:159"},"typeName":{"id":75175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"974:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":75179,"nodeType":"UsingForDirective","src":"987:35:159","nodes":[],"global":false,"libraryName":{"id":75177,"name":"MessageHashUtils","nameLocations":["993:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":45550,"src":"993:16:159"},"typeName":{"id":75178,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75182,"nodeType":"VariableDeclaration","src":"1130:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1155:12:159","scope":76908,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":75181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1170:66:159","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":75190,"nodeType":"FunctionDefinition","src":"1296:53:159","nodes":[],"body":{"id":75189,"nodeType":"Block","src":"1310:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75186,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1320:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75188,"nodeType":"ExpressionStatement","src":"1320:22:159"}]},"documentation":{"id":75183,"nodeType":"StructuredDocumentation","src":"1243:48:159","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75184,"nodeType":"ParameterList","parameters":[],"src":"1307:2:159"},"returnParameters":{"id":75185,"nodeType":"ParameterList","parameters":[],"src":"1310:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75272,"nodeType":"FunctionDefinition","src":"1355:728:159","nodes":[],"body":{"id":75271,"nodeType":"Block","src":"1557:526:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":75207,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75192,"src":"1582:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75206,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1567:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75209,"nodeType":"ExpressionStatement","src":"1567:28:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":75211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1621:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":75210,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75413,"src":"1606:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75213,"nodeType":"ExpressionStatement","src":"1606:41:159"},{"assignments":[75216],"declarations":[{"constant":false,"id":75216,"mutability":"mutable","name":"router","nameLocation":"1673:6:159","nodeType":"VariableDeclaration","scope":75271,"src":"1657:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75215,"nodeType":"UserDefinedTypeName","pathNode":{"id":75214,"name":"Storage","nameLocations":["1657:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"1657:7:159"},"referencedDeclaration":73472,"src":"1657:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75219,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75217,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"1682:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1682:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1657:38:159"},{"expression":{"id":75229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75220,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1706:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1713:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"1706:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75224,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1742:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:159","memberName":"number","nodeType":"MemberAccess","src":"1742:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1742:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75223,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1732:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1732:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1706:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75230,"nodeType":"ExpressionStatement","src":"1706:53:159"},{"expression":{"id":75235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75231,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1769:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1776:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"1769:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75234,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75194,"src":"1785:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1769:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75236,"nodeType":"ExpressionStatement","src":"1769:23:159"},{"expression":{"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75237,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1802:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1809:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"1802:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75240,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75196,"src":"1823:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1802:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75242,"nodeType":"ExpressionStatement","src":"1802:33:159"},{"expression":{"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75243,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1845:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1852:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"1845:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75246,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75198,"src":"1866:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1845:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75248,"nodeType":"ExpressionStatement","src":"1845:33:159"},{"expression":{"id":75253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75249,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1888:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1895:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"1888:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":75252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1924:4:159","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1888:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75254,"nodeType":"ExpressionStatement","src":"1888:40:159"},{"expression":{"id":75259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75255,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"1966:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1973:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"1966:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":75258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:13:159","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1966:33:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75260,"nodeType":"ExpressionStatement","src":"1966:33:159"},{"expression":{"id":75265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75261,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75216,"src":"2009:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2016:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73451,"src":"2009:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":75264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2033:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2009:26:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75266,"nodeType":"ExpressionStatement","src":"2009:26:159"},{"expression":{"arguments":[{"id":75268,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75201,"src":"2060:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75267,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76894,"src":"2045:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2045:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75270,"nodeType":"ExpressionStatement","src":"2045:31:159"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":75204,"kind":"modifierInvocation","modifierName":{"id":75203,"name":"initializer","nameLocations":["1545:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1545:11:159"},"nodeType":"ModifierInvocation","src":"1545:11:159"}],"name":"initialize","nameLocation":"1364:10:159","parameters":{"id":75202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75192,"mutability":"mutable","name":"initialOwner","nameLocation":"1392:12:159","nodeType":"VariableDeclaration","scope":75272,"src":"1384:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75191,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75194,"mutability":"mutable","name":"_mirror","nameLocation":"1422:7:159","nodeType":"VariableDeclaration","scope":75272,"src":"1414:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75193,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75196,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1447:12:159","nodeType":"VariableDeclaration","scope":75272,"src":"1439:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75195,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75198,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1477:12:159","nodeType":"VariableDeclaration","scope":75272,"src":"1469:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75197,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75201,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1516:15:159","nodeType":"VariableDeclaration","scope":75272,"src":"1499:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75199,"name":"address","nodeType":"ElementaryTypeName","src":"1499:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75200,"nodeType":"ArrayTypeName","src":"1499:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1374:163:159"},"returnParameters":{"id":75205,"nodeType":"ParameterList","parameters":[],"src":"1557:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75353,"nodeType":"FunctionDefinition","src":"2089:662:159","nodes":[],"body":{"id":75352,"nodeType":"Block","src":"2147:604:159","nodes":[],"statements":[{"assignments":[75282],"declarations":[{"constant":false,"id":75282,"mutability":"mutable","name":"oldRouter","nameLocation":"2173:9:159","nodeType":"VariableDeclaration","scope":75352,"src":"2157:25:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75281,"nodeType":"UserDefinedTypeName","pathNode":{"id":75280,"name":"Storage","nameLocations":["2157:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"2157:7:159"},"referencedDeclaration":73472,"src":"2157:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75285,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75283,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"2185:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2157:41:159"},{"assignments":[75287],"declarations":[{"constant":false,"id":75287,"mutability":"mutable","name":"_mirror","nameLocation":"2217:7:159","nodeType":"VariableDeclaration","scope":75352,"src":"2209:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75286,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75290,"initialValue":{"expression":{"id":75288,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"2227:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2237:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2227:16:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:34:159"},{"assignments":[75292],"declarations":[{"constant":false,"id":75292,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2261:12:159","nodeType":"VariableDeclaration","scope":75352,"src":"2253:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75291,"name":"address","nodeType":"ElementaryTypeName","src":"2253:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75295,"initialValue":{"expression":{"id":75293,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"2276:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2286:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2276:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2253:44:159"},{"assignments":[75297],"declarations":[{"constant":false,"id":75297,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2315:12:159","nodeType":"VariableDeclaration","scope":75352,"src":"2307:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75296,"name":"address","nodeType":"ElementaryTypeName","src":"2307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75300,"initialValue":{"expression":{"id":75298,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"2330:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2330:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2307:44:159"},{"assignments":[75305],"declarations":[{"constant":false,"id":75305,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2378:15:159","nodeType":"VariableDeclaration","scope":75352,"src":"2361:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75303,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75304,"nodeType":"ArrayTypeName","src":"2361:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":75308,"initialValue":{"expression":{"id":75306,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"2396:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2406:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"2396:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2361:59:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":75310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2446:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":75309,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75413,"src":"2431:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75312,"nodeType":"ExpressionStatement","src":"2431:41:159"},{"assignments":[75315],"declarations":[{"constant":false,"id":75315,"mutability":"mutable","name":"router","nameLocation":"2498:6:159","nodeType":"VariableDeclaration","scope":75352,"src":"2482:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75314,"nodeType":"UserDefinedTypeName","pathNode":{"id":75313,"name":"Storage","nameLocations":["2482:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"2482:7:159"},"referencedDeclaration":73472,"src":"2482:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75318,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75316,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"2507:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2482:38:159"},{"expression":{"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75319,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75315,"src":"2531:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2538:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"2531:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75323,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2567:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:6:159","memberName":"number","nodeType":"MemberAccess","src":"2567:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2582:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2567:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75322,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2557:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2531:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75329,"nodeType":"ExpressionStatement","src":"2531:53:159"},{"expression":{"id":75334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75330,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75315,"src":"2594:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2601:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2594:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75333,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75287,"src":"2610:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2594:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75335,"nodeType":"ExpressionStatement","src":"2594:23:159"},{"expression":{"id":75340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75336,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75315,"src":"2627:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2634:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2627:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75339,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"2648:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75341,"nodeType":"ExpressionStatement","src":"2627:33:159"},{"expression":{"id":75346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75342,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75315,"src":"2670:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2677:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2670:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75345,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75297,"src":"2691:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2670:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75347,"nodeType":"ExpressionStatement","src":"2670:33:159"},{"expression":{"arguments":[{"id":75349,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75305,"src":"2728:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75348,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76894,"src":"2713:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75351,"nodeType":"ExpressionStatement","src":"2713:31:159"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75275,"kind":"modifierInvocation","modifierName":{"id":75274,"name":"onlyOwner","nameLocations":["2120:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2120:9:159"},"nodeType":"ModifierInvocation","src":"2120:9:159"},{"arguments":[{"hexValue":"32","id":75277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2144:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75278,"kind":"modifierInvocation","modifierName":{"id":75276,"name":"reinitializer","nameLocations":["2130:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"2130:13:159"},"nodeType":"ModifierInvocation","src":"2130:16:159"}],"name":"reinitialize","nameLocation":"2098:12:159","parameters":{"id":75273,"nodeType":"ParameterList","parameters":[],"src":"2110:2:159"},"returnParameters":{"id":75279,"nodeType":"ParameterList","parameters":[],"src":"2147:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75365,"nodeType":"FunctionDefinition","src":"2790:126:159","nodes":[],"body":{"id":75364,"nodeType":"Block","src":"2846:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":75360,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75182,"src":"2890:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75358,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"2863:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2875:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"2863:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2904:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"2863:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75357,"id":75363,"nodeType":"Return","src":"2856:53:159"}]},"baseFunctions":[73582],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2799:14:159","parameters":{"id":75354,"nodeType":"ParameterList","parameters":[],"src":"2813:2:159"},"returnParameters":{"id":75357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75365,"src":"2837:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2837:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2836:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75413,"nodeType":"FunctionDefinition","src":"2922:287:159","nodes":[],"body":{"id":75412,"nodeType":"Block","src":"2988:221:159","nodes":[],"statements":[{"assignments":[75373],"declarations":[{"constant":false,"id":75373,"mutability":"mutable","name":"slot","nameLocation":"3006:4:159","nodeType":"VariableDeclaration","scope":75412,"src":"2998:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2998:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75399,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75382,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75367,"src":"3058:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":75381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3052:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75380,"name":"bytes","nodeType":"ElementaryTypeName","src":"3052:5:159","typeDescriptions":{}}},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75379,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3042:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3034:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75377,"name":"uint256","nodeType":"ElementaryTypeName","src":"3034:7:159","typeDescriptions":{}}},"id":75385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3034:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3073:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3034:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3023:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3027:6:159","memberName":"encode","nodeType":"MemberAccess","src":"3023:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75374,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3013:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3013:63:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":75397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3079:23:159","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":75394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3096:4:159","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":75393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3088:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75392,"name":"uint256","nodeType":"ElementaryTypeName","src":"3088:7:159","typeDescriptions":{}}},"id":75395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":75390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3080:7:159","typeDescriptions":{}}},"id":75396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3013:89:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2998:104:159"},{"expression":{"id":75407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":75403,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75182,"src":"3140:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75400,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"3113:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"3113:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3154:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"3113:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75406,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75373,"src":"3162:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3113:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75408,"nodeType":"ExpressionStatement","src":"3113:53:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75409,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73567,"src":"3182:18:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75411,"nodeType":"EmitStatement","src":"3177:25:159"}]},"baseFunctions":[73587],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":75370,"kind":"modifierInvocation","modifierName":{"id":75369,"name":"onlyOwner","nameLocations":["2978:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2978:9:159"},"nodeType":"ModifierInvocation","src":"2978:9:159"}],"name":"setStorageSlot","nameLocation":"2931:14:159","parameters":{"id":75368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75367,"mutability":"mutable","name":"namespace","nameLocation":"2960:9:159","nodeType":"VariableDeclaration","scope":75413,"src":"2946:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75366,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2945:25:159"},"returnParameters":{"id":75371,"nodeType":"ParameterList","parameters":[],"src":"2988:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75428,"nodeType":"FunctionDefinition","src":"3215:153:159","nodes":[],"body":{"id":75427,"nodeType":"Block","src":"3273:95:159","nodes":[],"statements":[{"assignments":[75420],"declarations":[{"constant":false,"id":75420,"mutability":"mutable","name":"router","nameLocation":"3299:6:159","nodeType":"VariableDeclaration","scope":75427,"src":"3283:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75419,"nodeType":"UserDefinedTypeName","pathNode":{"id":75418,"name":"Storage","nameLocations":["3283:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"3283:7:159"},"referencedDeclaration":73472,"src":"3283:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75421,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"3308:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3283:38:159"},{"expression":{"expression":{"id":75424,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75420,"src":"3338:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"3338:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75417,"id":75426,"nodeType":"Return","src":"3331:30:159"}]},"baseFunctions":[73592],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3224:16:159","parameters":{"id":75414,"nodeType":"ParameterList","parameters":[],"src":"3240:2:159"},"returnParameters":{"id":75417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75428,"src":"3264:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3264:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3263:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75443,"nodeType":"FunctionDefinition","src":"3374:167:159","nodes":[],"body":{"id":75442,"nodeType":"Block","src":"3439:102:159","nodes":[],"statements":[{"assignments":[75435],"declarations":[{"constant":false,"id":75435,"mutability":"mutable","name":"router","nameLocation":"3465:6:159","nodeType":"VariableDeclaration","scope":75442,"src":"3449:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75434,"nodeType":"UserDefinedTypeName","pathNode":{"id":75433,"name":"Storage","nameLocations":["3449:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"3449:7:159"},"referencedDeclaration":73472,"src":"3449:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75438,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75436,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"3474:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3474:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3449:38:159"},{"expression":{"expression":{"id":75439,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75435,"src":"3504:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"3504:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75432,"id":75441,"nodeType":"Return","src":"3497:37:159"}]},"baseFunctions":[73597],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3383:23:159","parameters":{"id":75429,"nodeType":"ParameterList","parameters":[],"src":"3406:2:159"},"returnParameters":{"id":75432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75443,"src":"3430:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3430:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3429:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75458,"nodeType":"FunctionDefinition","src":"3547:176:159","nodes":[],"body":{"id":75457,"nodeType":"Block","src":"3616:107:159","nodes":[],"statements":[{"assignments":[75450],"declarations":[{"constant":false,"id":75450,"mutability":"mutable","name":"router","nameLocation":"3642:6:159","nodeType":"VariableDeclaration","scope":75457,"src":"3626:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75449,"nodeType":"UserDefinedTypeName","pathNode":{"id":75448,"name":"Storage","nameLocations":["3626:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"3626:7:159"},"referencedDeclaration":73472,"src":"3626:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75453,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75451,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"3651:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3651:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3626:38:159"},{"expression":{"expression":{"id":75454,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75450,"src":"3681:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3688:28:159","memberName":"lastBlockCommitmentTimestamp","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"3681:35:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75447,"id":75456,"nodeType":"Return","src":"3674:42:159"}]},"baseFunctions":[73602],"functionSelector":"4083acec","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentTimestamp","nameLocation":"3556:28:159","parameters":{"id":75444,"nodeType":"ParameterList","parameters":[],"src":"3584:2:159"},"returnParameters":{"id":75447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75458,"src":"3608:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75445,"name":"uint48","nodeType":"ElementaryTypeName","src":"3608:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3607:8:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75473,"nodeType":"FunctionDefinition","src":"3729:143:159","nodes":[],"body":{"id":75472,"nodeType":"Block","src":"3782:90:159","nodes":[],"statements":[{"assignments":[75465],"declarations":[{"constant":false,"id":75465,"mutability":"mutable","name":"router","nameLocation":"3808:6:159","nodeType":"VariableDeclaration","scope":75472,"src":"3792:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75464,"nodeType":"UserDefinedTypeName","pathNode":{"id":75463,"name":"Storage","nameLocations":["3792:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"3792:7:159"},"referencedDeclaration":73472,"src":"3792:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75468,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75466,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"3817:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3817:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3792:38:159"},{"expression":{"expression":{"id":75469,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75465,"src":"3847:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3854:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"3847:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75462,"id":75471,"nodeType":"Return","src":"3840:25:159"}]},"baseFunctions":[73607],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3738:11:159","parameters":{"id":75459,"nodeType":"ParameterList","parameters":[],"src":"3749:2:159"},"returnParameters":{"id":75462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75473,"src":"3773:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75460,"name":"address","nodeType":"ElementaryTypeName","src":"3773:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3772:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75488,"nodeType":"FunctionDefinition","src":"3878:143:159","nodes":[],"body":{"id":75487,"nodeType":"Block","src":"3931:90:159","nodes":[],"statements":[{"assignments":[75480],"declarations":[{"constant":false,"id":75480,"mutability":"mutable","name":"router","nameLocation":"3957:6:159","nodeType":"VariableDeclaration","scope":75487,"src":"3941:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75479,"nodeType":"UserDefinedTypeName","pathNode":{"id":75478,"name":"Storage","nameLocations":["3941:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"3941:7:159"},"referencedDeclaration":73472,"src":"3941:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75483,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75481,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"3966:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3966:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3941:38:159"},{"expression":{"expression":{"id":75484,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75480,"src":"3996:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4003:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"3996:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75477,"id":75486,"nodeType":"Return","src":"3989:25:159"}]},"baseFunctions":[73612],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3887:11:159","parameters":{"id":75474,"nodeType":"ParameterList","parameters":[],"src":"3898:2:159"},"returnParameters":{"id":75477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75488,"src":"3922:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75475,"name":"address","nodeType":"ElementaryTypeName","src":"3922:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3921:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75503,"nodeType":"FunctionDefinition","src":"4027:133:159","nodes":[],"body":{"id":75502,"nodeType":"Block","src":"4075:85:159","nodes":[],"statements":[{"assignments":[75495],"declarations":[{"constant":false,"id":75495,"mutability":"mutable","name":"router","nameLocation":"4101:6:159","nodeType":"VariableDeclaration","scope":75502,"src":"4085:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75494,"nodeType":"UserDefinedTypeName","pathNode":{"id":75493,"name":"Storage","nameLocations":["4085:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4085:7:159"},"referencedDeclaration":73472,"src":"4085:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75498,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75496,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4110:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4085:38:159"},{"expression":{"expression":{"id":75499,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"4140:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4147:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"4140:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75492,"id":75501,"nodeType":"Return","src":"4133:20:159"}]},"baseFunctions":[73617],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"4036:6:159","parameters":{"id":75489,"nodeType":"ParameterList","parameters":[],"src":"4042:2:159"},"returnParameters":{"id":75492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75491,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75503,"src":"4066:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75490,"name":"address","nodeType":"ElementaryTypeName","src":"4066:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4065:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75523,"nodeType":"FunctionDefinition","src":"4166:143:159","nodes":[],"body":{"id":75522,"nodeType":"Block","src":"4221:88:159","nodes":[],"statements":[{"assignments":[75512],"declarations":[{"constant":false,"id":75512,"mutability":"mutable","name":"router","nameLocation":"4247:6:159","nodeType":"VariableDeclaration","scope":75522,"src":"4231:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75511,"nodeType":"UserDefinedTypeName","pathNode":{"id":75510,"name":"Storage","nameLocations":["4231:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4231:7:159"},"referencedDeclaration":73472,"src":"4231:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75515,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75513,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4256:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4256:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4231:38:159"},{"expression":{"id":75520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75516,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75512,"src":"4279:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4286:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"4279:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75519,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"4295:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4279:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75521,"nodeType":"ExpressionStatement","src":"4279:23:159"}]},"baseFunctions":[73622],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":75508,"kind":"modifierInvocation","modifierName":{"id":75507,"name":"onlyOwner","nameLocations":["4211:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"4211:9:159"},"nodeType":"ModifierInvocation","src":"4211:9:159"}],"name":"setMirror","nameLocation":"4175:9:159","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75505,"mutability":"mutable","name":"_mirror","nameLocation":"4193:7:159","nodeType":"VariableDeclaration","scope":75523,"src":"4185:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75504,"name":"address","nodeType":"ElementaryTypeName","src":"4185:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4184:17:159"},"returnParameters":{"id":75509,"nodeType":"ParameterList","parameters":[],"src":"4221:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75538,"nodeType":"FunctionDefinition","src":"4365:159:159","nodes":[],"body":{"id":75537,"nodeType":"Block","src":"4426:98:159","nodes":[],"statements":[{"assignments":[75530],"declarations":[{"constant":false,"id":75530,"mutability":"mutable","name":"router","nameLocation":"4452:6:159","nodeType":"VariableDeclaration","scope":75537,"src":"4436:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75529,"nodeType":"UserDefinedTypeName","pathNode":{"id":75528,"name":"Storage","nameLocations":["4436:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4436:7:159"},"referencedDeclaration":73472,"src":"4436:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75533,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75531,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4461:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4436:38:159"},{"expression":{"expression":{"id":75534,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75530,"src":"4491:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4498:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73465,"src":"4491:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75527,"id":75536,"nodeType":"Return","src":"4484:33:159"}]},"baseFunctions":[73627],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4374:19:159","parameters":{"id":75524,"nodeType":"ParameterList","parameters":[],"src":"4393:2:159"},"returnParameters":{"id":75527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75538,"src":"4417:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75525,"name":"uint256","nodeType":"ElementaryTypeName","src":"4417:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4416:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75558,"nodeType":"FunctionDefinition","src":"4530:159:159","nodes":[],"body":{"id":75557,"nodeType":"Block","src":"4597:92:159","nodes":[],"statements":[{"assignments":[75548],"declarations":[{"constant":false,"id":75548,"mutability":"mutable","name":"router","nameLocation":"4623:6:159","nodeType":"VariableDeclaration","scope":75557,"src":"4607:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75547,"nodeType":"UserDefinedTypeName","pathNode":{"id":75546,"name":"Storage","nameLocations":["4607:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4607:7:159"},"referencedDeclaration":73472,"src":"4607:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75549,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4632:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4632:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4607:38:159"},{"expression":{"baseExpression":{"expression":{"id":75552,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75548,"src":"4662:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4669:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"4662:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75555,"indexExpression":{"id":75554,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75540,"src":"4675:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4662:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":75545,"id":75556,"nodeType":"Return","src":"4655:27:159"}]},"baseFunctions":[73635],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4539:9:159","parameters":{"id":75541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75540,"mutability":"mutable","name":"codeId","nameLocation":"4557:6:159","nodeType":"VariableDeclaration","scope":75558,"src":"4549:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4549:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4548:16:159"},"returnParameters":{"id":75545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75558,"src":"4586:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"},"typeName":{"id":75543,"nodeType":"UserDefinedTypeName","pathNode":{"id":75542,"name":"CodeState","nameLocations":["4586:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":73476,"src":"4586:9:159"},"referencedDeclaration":73476,"src":"4586:9:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4585:11:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75573,"nodeType":"FunctionDefinition","src":"4695:147:159","nodes":[],"body":{"id":75572,"nodeType":"Block","src":"4750:92:159","nodes":[],"statements":[{"assignments":[75565],"declarations":[{"constant":false,"id":75565,"mutability":"mutable","name":"router","nameLocation":"4776:6:159","nodeType":"VariableDeclaration","scope":75572,"src":"4760:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75564,"nodeType":"UserDefinedTypeName","pathNode":{"id":75563,"name":"Storage","nameLocations":["4760:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4760:7:159"},"referencedDeclaration":73472,"src":"4760:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75566,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4785:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4785:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4760:38:159"},{"expression":{"expression":{"id":75569,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75565,"src":"4815:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4822:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73471,"src":"4815:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75562,"id":75571,"nodeType":"Return","src":"4808:27:159"}]},"baseFunctions":[73640],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4704:13:159","parameters":{"id":75559,"nodeType":"ParameterList","parameters":[],"src":"4717:2:159"},"returnParameters":{"id":75562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75573,"src":"4741:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75560,"name":"uint256","nodeType":"ElementaryTypeName","src":"4741:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4740:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75592,"nodeType":"FunctionDefinition","src":"4848:166:159","nodes":[],"body":{"id":75591,"nodeType":"Block","src":"4918:96:159","nodes":[],"statements":[{"assignments":[75582],"declarations":[{"constant":false,"id":75582,"mutability":"mutable","name":"router","nameLocation":"4944:6:159","nodeType":"VariableDeclaration","scope":75591,"src":"4928:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75581,"nodeType":"UserDefinedTypeName","pathNode":{"id":75580,"name":"Storage","nameLocations":["4928:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"4928:7:159"},"referencedDeclaration":73472,"src":"4928:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75585,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75583,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"4953:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4953:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4928:38:159"},{"expression":{"baseExpression":{"expression":{"id":75586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"4983:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4990:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"4983:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":75589,"indexExpression":{"id":75588,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75575,"src":"4999:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4983:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75579,"id":75590,"nodeType":"Return","src":"4976:31:159"}]},"baseFunctions":[73648],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4857:13:159","parameters":{"id":75576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75575,"mutability":"mutable","name":"program","nameLocation":"4879:7:159","nodeType":"VariableDeclaration","scope":75592,"src":"4871:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75574,"name":"address","nodeType":"ElementaryTypeName","src":"4871:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4870:17:159"},"returnParameters":{"id":75579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75592,"src":"4909:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4909:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4908:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75607,"nodeType":"FunctionDefinition","src":"5065:173:159","nodes":[],"body":{"id":75606,"nodeType":"Block","src":"5133:105:159","nodes":[],"statements":[{"assignments":[75599],"declarations":[{"constant":false,"id":75599,"mutability":"mutable","name":"router","nameLocation":"5159:6:159","nodeType":"VariableDeclaration","scope":75606,"src":"5143:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75598,"nodeType":"UserDefinedTypeName","pathNode":{"id":75597,"name":"Storage","nameLocations":["5143:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"5143:7:159"},"referencedDeclaration":73472,"src":"5143:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75602,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75600,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"5168:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5143:38:159"},{"expression":{"expression":{"id":75603,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75599,"src":"5198:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5205:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"5198:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75596,"id":75605,"nodeType":"Return","src":"5191:40:159"}]},"baseFunctions":[73653],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"5074:26:159","parameters":{"id":75593,"nodeType":"ParameterList","parameters":[],"src":"5100:2:159"},"returnParameters":{"id":75596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75607,"src":"5124:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75594,"name":"uint256","nodeType":"ElementaryTypeName","src":"5124:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5123:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75624,"nodeType":"FunctionDefinition","src":"5244:204:159","nodes":[],"body":{"id":75623,"nodeType":"Block","src":"5305:143:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75612,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"5377:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5377:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75614,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75607,"src":"5397:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5397:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5377:48:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":75617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5428:4:159","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5377:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75619,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5376:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":75620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5436:5:159","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5376:65:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75611,"id":75622,"nodeType":"Return","src":"5369:72:159"}]},"baseFunctions":[73658],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"5253:19:159","parameters":{"id":75608,"nodeType":"ParameterList","parameters":[],"src":"5272:2:159"},"returnParameters":{"id":75611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75624,"src":"5296:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75609,"name":"uint256","nodeType":"ElementaryTypeName","src":"5296:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5295:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75640,"nodeType":"FunctionDefinition","src":"5454:157:159","nodes":[],"body":{"id":75639,"nodeType":"Block","src":"5511:100:159","nodes":[],"statements":[{"assignments":[75631],"declarations":[{"constant":false,"id":75631,"mutability":"mutable","name":"router","nameLocation":"5537:6:159","nodeType":"VariableDeclaration","scope":75639,"src":"5521:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75630,"nodeType":"UserDefinedTypeName","pathNode":{"id":75629,"name":"Storage","nameLocations":["5521:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"5521:7:159"},"referencedDeclaration":73472,"src":"5521:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75634,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75632,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"5546:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5521:38:159"},{"expression":{"expression":{"expression":{"id":75635,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"5576:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"5576:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":75637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5598:6:159","memberName":"length","nodeType":"MemberAccess","src":"5576:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75628,"id":75638,"nodeType":"Return","src":"5569:35:159"}]},"baseFunctions":[73663],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5463:15:159","parameters":{"id":75625,"nodeType":"ParameterList","parameters":[],"src":"5478:2:159"},"returnParameters":{"id":75628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75640,"src":"5502:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75626,"name":"uint256","nodeType":"ElementaryTypeName","src":"5502:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5501:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75659,"nodeType":"FunctionDefinition","src":"5617:171:159","nodes":[],"body":{"id":75658,"nodeType":"Block","src":"5688:100:159","nodes":[],"statements":[{"assignments":[75649],"declarations":[{"constant":false,"id":75649,"mutability":"mutable","name":"router","nameLocation":"5714:6:159","nodeType":"VariableDeclaration","scope":75658,"src":"5698:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75648,"nodeType":"UserDefinedTypeName","pathNode":{"id":75647,"name":"Storage","nameLocations":["5698:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"5698:7:159"},"referencedDeclaration":73472,"src":"5698:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75652,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75650,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"5723:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5698:38:159"},{"expression":{"baseExpression":{"expression":{"id":75653,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75649,"src":"5753:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5760:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73455,"src":"5753:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75656,"indexExpression":{"id":75655,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75642,"src":"5771:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5753:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75646,"id":75657,"nodeType":"Return","src":"5746:35:159"}]},"baseFunctions":[73670],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5626:15:159","parameters":{"id":75643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75642,"mutability":"mutable","name":"validator","nameLocation":"5650:9:159","nodeType":"VariableDeclaration","scope":75659,"src":"5642:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75641,"name":"address","nodeType":"ElementaryTypeName","src":"5642:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5641:19:159"},"returnParameters":{"id":75646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75659,"src":"5682:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75644,"name":"bool","nodeType":"ElementaryTypeName","src":"5682:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5681:6:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75675,"nodeType":"FunctionDefinition","src":"5794:154:159","nodes":[],"body":{"id":75674,"nodeType":"Block","src":"5855:93:159","nodes":[],"statements":[{"assignments":[75667],"declarations":[{"constant":false,"id":75667,"mutability":"mutable","name":"router","nameLocation":"5881:6:159","nodeType":"VariableDeclaration","scope":75674,"src":"5865:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75666,"nodeType":"UserDefinedTypeName","pathNode":{"id":75665,"name":"Storage","nameLocations":["5865:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"5865:7:159"},"referencedDeclaration":73472,"src":"5865:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75670,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75668,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"5890:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5890:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5865:38:159"},{"expression":{"expression":{"id":75671,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75667,"src":"5920:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5927:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"5920:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":75664,"id":75673,"nodeType":"Return","src":"5913:28:159"}]},"baseFunctions":[73676],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5803:10:159","parameters":{"id":75660,"nodeType":"ParameterList","parameters":[],"src":"5813:2:159"},"returnParameters":{"id":75664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75675,"src":"5837:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75661,"name":"address","nodeType":"ElementaryTypeName","src":"5837:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75662,"nodeType":"ArrayTypeName","src":"5837:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5836:18:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75694,"nodeType":"FunctionDefinition","src":"6011:209:159","nodes":[],"body":{"id":75693,"nodeType":"Block","src":"6099:121:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75683,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"6109:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6109:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75685,"nodeType":"ExpressionStatement","src":"6109:18:159"},{"expression":{"arguments":[{"id":75687,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75678,"src":"6152:22:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":75686,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76894,"src":"6137:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75689,"nodeType":"ExpressionStatement","src":"6137:38:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75690,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"6191:20:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6191:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75692,"nodeType":"EmitStatement","src":"6186:27:159"}]},"baseFunctions":[73682],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":75681,"kind":"modifierInvocation","modifierName":{"id":75680,"name":"onlyOwner","nameLocations":["6089:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6089:9:159"},"nodeType":"ModifierInvocation","src":"6089:9:159"}],"name":"updateValidators","nameLocation":"6020:16:159","parameters":{"id":75679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75678,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"6056:22:159","nodeType":"VariableDeclaration","scope":75694,"src":"6037:41:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75676,"name":"address","nodeType":"ElementaryTypeName","src":"6037:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75677,"nodeType":"ArrayTypeName","src":"6037:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6036:43:159"},"returnParameters":{"id":75682,"nodeType":"ParameterList","parameters":[],"src":"6099:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75709,"nodeType":"FunctionDefinition","src":"6274:140:159","nodes":[],"body":{"id":75708,"nodeType":"Block","src":"6325:89:159","nodes":[],"statements":[{"assignments":[75701],"declarations":[{"constant":false,"id":75701,"mutability":"mutable","name":"router","nameLocation":"6351:6:159","nodeType":"VariableDeclaration","scope":75708,"src":"6335:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75700,"nodeType":"UserDefinedTypeName","pathNode":{"id":75699,"name":"Storage","nameLocations":["6335:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"6335:7:159"},"referencedDeclaration":73472,"src":"6335:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75704,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75702,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"6360:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6335:38:159"},{"expression":{"expression":{"id":75705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75701,"src":"6390:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6390:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75698,"id":75707,"nodeType":"Return","src":"6383:24:159"}]},"baseFunctions":[73687],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6283:10:159","parameters":{"id":75695,"nodeType":"ParameterList","parameters":[],"src":"6293:2:159"},"returnParameters":{"id":75698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75709,"src":"6317:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75696,"name":"uint64","nodeType":"ElementaryTypeName","src":"6317:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6316:8:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75733,"nodeType":"FunctionDefinition","src":"6420:204:159","nodes":[],"body":{"id":75732,"nodeType":"Block","src":"6482:142:159","nodes":[],"statements":[{"assignments":[75718],"declarations":[{"constant":false,"id":75718,"mutability":"mutable","name":"router","nameLocation":"6508:6:159","nodeType":"VariableDeclaration","scope":75732,"src":"6492:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75717,"nodeType":"UserDefinedTypeName","pathNode":{"id":75716,"name":"Storage","nameLocations":["6492:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"6492:7:159"},"referencedDeclaration":73472,"src":"6492:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75721,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75719,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"6517:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6517:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6492:38:159"},{"expression":{"id":75726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75722,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75718,"src":"6540:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6547:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6540:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75725,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75711,"src":"6560:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6540:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75727,"nodeType":"ExpressionStatement","src":"6540:31:159"},{"eventCall":{"arguments":[{"id":75729,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75711,"src":"6605:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75728,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"6587:17:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":75730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6587:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75731,"nodeType":"EmitStatement","src":"6582:35:159"}]},"baseFunctions":[73692],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":75714,"kind":"modifierInvocation","modifierName":{"id":75713,"name":"onlyOwner","nameLocations":["6472:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6472:9:159"},"nodeType":"ModifierInvocation","src":"6472:9:159"}],"name":"setBaseWeight","nameLocation":"6429:13:159","parameters":{"id":75712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75711,"mutability":"mutable","name":"_baseWeight","nameLocation":"6450:11:159","nodeType":"VariableDeclaration","scope":75733,"src":"6443:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75710,"name":"uint64","nodeType":"ElementaryTypeName","src":"6443:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6442:20:159"},"returnParameters":{"id":75715,"nodeType":"ParameterList","parameters":[],"src":"6482:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75748,"nodeType":"FunctionDefinition","src":"6630:149:159","nodes":[],"body":{"id":75747,"nodeType":"Block","src":"6686:93:159","nodes":[],"statements":[{"assignments":[75740],"declarations":[{"constant":false,"id":75740,"mutability":"mutable","name":"router","nameLocation":"6712:6:159","nodeType":"VariableDeclaration","scope":75747,"src":"6696:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75739,"nodeType":"UserDefinedTypeName","pathNode":{"id":75738,"name":"Storage","nameLocations":["6696:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"6696:7:159"},"referencedDeclaration":73472,"src":"6696:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75743,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75741,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"6721:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6696:38:159"},{"expression":{"expression":{"id":75744,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75740,"src":"6751:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6758:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73451,"src":"6751:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75737,"id":75746,"nodeType":"Return","src":"6744:28:159"}]},"baseFunctions":[73697],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6639:14:159","parameters":{"id":75734,"nodeType":"ParameterList","parameters":[],"src":"6653:2:159"},"returnParameters":{"id":75737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75748,"src":"6677:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75735,"name":"uint128","nodeType":"ElementaryTypeName","src":"6677:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6676:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75772,"nodeType":"FunctionDefinition","src":"6785:229:159","nodes":[],"body":{"id":75771,"nodeType":"Block","src":"6856:158:159","nodes":[],"statements":[{"assignments":[75757],"declarations":[{"constant":false,"id":75757,"mutability":"mutable","name":"router","nameLocation":"6882:6:159","nodeType":"VariableDeclaration","scope":75771,"src":"6866:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75756,"nodeType":"UserDefinedTypeName","pathNode":{"id":75755,"name":"Storage","nameLocations":["6866:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"6866:7:159"},"referencedDeclaration":73472,"src":"6866:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75760,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75758,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"6891:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6891:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6866:38:159"},{"expression":{"id":75765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75761,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75757,"src":"6914:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6921:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73451,"src":"6914:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75764,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75750,"src":"6938:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6914:39:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75766,"nodeType":"ExpressionStatement","src":"6914:39:159"},{"eventCall":{"arguments":[{"id":75768,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75750,"src":"6991:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75767,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73577,"src":"6969:21:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":75769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75770,"nodeType":"EmitStatement","src":"6964:43:159"}]},"baseFunctions":[73702],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":75753,"kind":"modifierInvocation","modifierName":{"id":75752,"name":"onlyOwner","nameLocations":["6846:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6846:9:159"},"nodeType":"ModifierInvocation","src":"6846:9:159"}],"name":"setValuePerWeight","nameLocation":"6794:17:159","parameters":{"id":75751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75750,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6820:15:159","nodeType":"VariableDeclaration","scope":75772,"src":"6812:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75749,"name":"uint128","nodeType":"ElementaryTypeName","src":"6812:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6811:25:159"},"returnParameters":{"id":75754,"nodeType":"ParameterList","parameters":[],"src":"6856:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75787,"nodeType":"FunctionDefinition","src":"7020:113:159","nodes":[],"body":{"id":75786,"nodeType":"Block","src":"7069:64:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75779,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75709,"src":"7094:10:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":75780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7086:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":75777,"name":"uint128","nodeType":"ElementaryTypeName","src":"7086:7:159","typeDescriptions":{}}},"id":75781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75782,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"7110:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":75783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7110:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7086:40:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75776,"id":75785,"nodeType":"Return","src":"7079:47:159"}]},"baseFunctions":[73707],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"7029:7:159","parameters":{"id":75773,"nodeType":"ParameterList","parameters":[],"src":"7036:2:159"},"returnParameters":{"id":75776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75787,"src":"7060:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75774,"name":"uint128","nodeType":"ElementaryTypeName","src":"7060:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7059:9:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75839,"nodeType":"FunctionDefinition","src":"7169:453:159","nodes":[],"body":{"id":75838,"nodeType":"Block","src":"7245:377:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75795,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75791,"src":"7263:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7277:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7263:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":75799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7291:1:159","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":75798,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7282:8:159","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7282:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7297:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7282:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7263:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":75804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7300:30:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":75794,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7255:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7255:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75806,"nodeType":"ExpressionStatement","src":"7255:76:159"},{"assignments":[75809],"declarations":[{"constant":false,"id":75809,"mutability":"mutable","name":"router","nameLocation":"7358:6:159","nodeType":"VariableDeclaration","scope":75838,"src":"7342:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75808,"nodeType":"UserDefinedTypeName","pathNode":{"id":75807,"name":"Storage","nameLocations":["7342:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"7342:7:159"},"referencedDeclaration":73472,"src":"7342:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75812,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75810,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"7367:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7367:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7342:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"},"id":75820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75814,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75809,"src":"7399:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7406:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"7399:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75817,"indexExpression":{"id":75816,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"7412:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7399:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75818,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73476,"src":"7423:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73476_$","typeString":"type(enum IRouter.CodeState)"}},"id":75819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7433:7:159","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"7423:17:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"src":"7399:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":75821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7442:50:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":75813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7391:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7391:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75823,"nodeType":"ExpressionStatement","src":"7391:102:159"},{"expression":{"id":75831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75824,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75809,"src":"7504:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7511:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"7504:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75828,"indexExpression":{"id":75826,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"7517:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7504:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75829,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73476,"src":"7527:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73476_$","typeString":"type(enum IRouter.CodeState)"}},"id":75830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7537:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73474,"src":"7527:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"src":"7504:52:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"id":75832,"nodeType":"ExpressionStatement","src":"7504:52:159"},{"eventCall":{"arguments":[{"id":75834,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75789,"src":"7596:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75835,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75791,"src":"7604:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75833,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73547,"src":"7572:23:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7572:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75837,"nodeType":"EmitStatement","src":"7567:48:159"}]},"baseFunctions":[73714],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"7178:21:159","parameters":{"id":75792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75789,"mutability":"mutable","name":"codeId","nameLocation":"7208:6:159","nodeType":"VariableDeclaration","scope":75839,"src":"7200:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7200:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75791,"mutability":"mutable","name":"blobTxHash","nameLocation":"7224:10:159","nodeType":"VariableDeclaration","scope":75839,"src":"7216:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7216:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7199:36:159"},"returnParameters":{"id":75793,"nodeType":"ParameterList","parameters":[],"src":"7245:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75876,"nodeType":"FunctionDefinition","src":"7628:381:159","nodes":[],"body":{"id":75875,"nodeType":"Block","src":"7784:225:159","nodes":[],"statements":[{"assignments":[75853,75855],"declarations":[{"constant":false,"id":75853,"mutability":"mutable","name":"actorId","nameLocation":"7803:7:159","nodeType":"VariableDeclaration","scope":75875,"src":"7795:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75852,"name":"address","nodeType":"ElementaryTypeName","src":"7795:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75855,"mutability":"mutable","name":"executableBalance","nameLocation":"7820:17:159","nodeType":"VariableDeclaration","scope":75875,"src":"7812:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75854,"name":"uint128","nodeType":"ElementaryTypeName","src":"7812:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75861,"initialValue":{"arguments":[{"id":75857,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75841,"src":"7870:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75858,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75843,"src":"7878:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75859,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"7884:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75856,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"7841:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7794:97:159"},{"expression":{"arguments":[{"expression":{"id":75866,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7931:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7934:6:159","memberName":"origin","nodeType":"MemberAccess","src":"7931:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75868,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75845,"src":"7942:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75869,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"7951:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75870,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75855,"src":"7959:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":75863,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75853,"src":"7910:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75862,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"7902:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7902:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7919:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"7902:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7902:75:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75872,"nodeType":"ExpressionStatement","src":"7902:75:159"},{"expression":{"id":75873,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75853,"src":"7995:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75851,"id":75874,"nodeType":"Return","src":"7988:14:159"}]},"baseFunctions":[73727],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7637:13:159","parameters":{"id":75848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75841,"mutability":"mutable","name":"codeId","nameLocation":"7659:6:159","nodeType":"VariableDeclaration","scope":75876,"src":"7651:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7651:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75843,"mutability":"mutable","name":"salt","nameLocation":"7675:4:159","nodeType":"VariableDeclaration","scope":75876,"src":"7667:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7667:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75845,"mutability":"mutable","name":"payload","nameLocation":"7696:7:159","nodeType":"VariableDeclaration","scope":75876,"src":"7681:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75844,"name":"bytes","nodeType":"ElementaryTypeName","src":"7681:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75847,"mutability":"mutable","name":"_value","nameLocation":"7713:6:159","nodeType":"VariableDeclaration","scope":75876,"src":"7705:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75846,"name":"uint128","nodeType":"ElementaryTypeName","src":"7705:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7650:70:159"},"returnParameters":{"id":75851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75876,"src":"7771:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75849,"name":"address","nodeType":"ElementaryTypeName","src":"7771:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7770:9:159"},"scope":76908,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75934,"nodeType":"FunctionDefinition","src":"8015:596:159","nodes":[],"body":{"id":75933,"nodeType":"Block","src":"8231:380:159","nodes":[],"statements":[{"assignments":[75892,75894],"declarations":[{"constant":false,"id":75892,"mutability":"mutable","name":"actorId","nameLocation":"8250:7:159","nodeType":"VariableDeclaration","scope":75933,"src":"8242:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75891,"name":"address","nodeType":"ElementaryTypeName","src":"8242:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75894,"mutability":"mutable","name":"executableBalance","nameLocation":"8267:17:159","nodeType":"VariableDeclaration","scope":75933,"src":"8259:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75893,"name":"uint128","nodeType":"ElementaryTypeName","src":"8259:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75900,"initialValue":{"arguments":[{"id":75896,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75880,"src":"8317:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75897,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"8325:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75898,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75886,"src":"8331:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75895,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"8288:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8288:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"8241:97:159"},{"assignments":[75903],"declarations":[{"constant":false,"id":75903,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8357:14:159","nodeType":"VariableDeclaration","scope":75933,"src":"8349:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":75902,"nodeType":"UserDefinedTypeName","pathNode":{"id":75901,"name":"IMirror","nameLocations":["8349:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"8349:7:159"},"referencedDeclaration":73387,"src":"8349:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":75907,"initialValue":{"arguments":[{"id":75905,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"8382:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75904,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"8374:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8349:41:159"},{"expression":{"arguments":[{"id":75911,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75878,"src":"8430:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":75915,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75880,"src":"8480:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75916,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75882,"src":"8488:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8463:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8467:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"8463:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8463:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75912,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8453:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8453:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75908,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75903,"src":"8401:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8416:13:159","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":73375,"src":"8401:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":75919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:94:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75920,"nodeType":"ExpressionStatement","src":"8401:94:159"},{"expression":{"arguments":[{"expression":{"id":75924,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8533:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8536:6:159","memberName":"origin","nodeType":"MemberAccess","src":"8533:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75926,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"8544:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75927,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75886,"src":"8553:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75928,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"8561:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75921,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75903,"src":"8506:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8521:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"8506:26:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8506:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75930,"nodeType":"ExpressionStatement","src":"8506:73:159"},{"expression":{"id":75931,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"8597:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75890,"id":75932,"nodeType":"Return","src":"8590:14:159"}]},"baseFunctions":[73742],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"8024:24:159","parameters":{"id":75887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75878,"mutability":"mutable","name":"decoderImplementation","nameLocation":"8066:21:159","nodeType":"VariableDeclaration","scope":75934,"src":"8058:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75877,"name":"address","nodeType":"ElementaryTypeName","src":"8058:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75880,"mutability":"mutable","name":"codeId","nameLocation":"8105:6:159","nodeType":"VariableDeclaration","scope":75934,"src":"8097:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8097:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75882,"mutability":"mutable","name":"salt","nameLocation":"8129:4:159","nodeType":"VariableDeclaration","scope":75934,"src":"8121:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8121:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75884,"mutability":"mutable","name":"payload","nameLocation":"8158:7:159","nodeType":"VariableDeclaration","scope":75934,"src":"8143:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75883,"name":"bytes","nodeType":"ElementaryTypeName","src":"8143:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75886,"mutability":"mutable","name":"_value","nameLocation":"8183:6:159","nodeType":"VariableDeclaration","scope":75934,"src":"8175:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75885,"name":"uint128","nodeType":"ElementaryTypeName","src":"8175:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8048:147:159"},"returnParameters":{"id":75890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75934,"src":"8222:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75888,"name":"address","nodeType":"ElementaryTypeName","src":"8222:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8221:9:159"},"scope":76908,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76047,"nodeType":"FunctionDefinition","src":"8617:1117:159","nodes":[],"body":{"id":76046,"nodeType":"Block","src":"8724:1010:159","nodes":[],"statements":[{"assignments":[75946],"declarations":[{"constant":false,"id":75946,"mutability":"mutable","name":"router","nameLocation":"8750:6:159","nodeType":"VariableDeclaration","scope":76046,"src":"8734:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75945,"nodeType":"UserDefinedTypeName","pathNode":{"id":75944,"name":"Storage","nameLocations":["8734:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"8734:7:159"},"referencedDeclaration":73472,"src":"8734:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75949,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75947,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"8759:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8759:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8734:38:159"},{"assignments":[75951],"declarations":[{"constant":false,"id":75951,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8796:21:159","nodeType":"VariableDeclaration","scope":76046,"src":"8783:34:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75950,"name":"bytes","nodeType":"ElementaryTypeName","src":"8783:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75952,"nodeType":"VariableDeclarationStatement","src":"8783:34:159"},{"body":{"id":76037,"nodeType":"Block","src":"8886:766:159","statements":[{"assignments":[75966],"declarations":[{"constant":false,"id":75966,"mutability":"mutable","name":"codeCommitment","nameLocation":"8924:14:159","nodeType":"VariableDeclaration","scope":76037,"src":"8900:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":75965,"nodeType":"UserDefinedTypeName","pathNode":{"id":75964,"name":"CodeCommitment","nameLocations":["8900:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73481,"src":"8900:14:159"},"referencedDeclaration":73481,"src":"8900:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":75970,"initialValue":{"baseExpression":{"id":75967,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75938,"src":"8941:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73481_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75969,"indexExpression":{"id":75968,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75954,"src":"8962:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8941:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8900:64:159"},{"assignments":[75972],"declarations":[{"constant":false,"id":75972,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8987:18:159","nodeType":"VariableDeclaration","scope":76037,"src":"8979:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8979:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75976,"initialValue":{"arguments":[{"id":75974,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75966,"src":"9028:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":75973,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"9008:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$73481_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":75975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8979:64:159"},{"expression":{"id":75984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75977,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75951,"src":"9058:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75981,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75951,"src":"9095:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":75982,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75972,"src":"9118:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9082:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75978,"name":"bytes","nodeType":"ElementaryTypeName","src":"9082:5:159","typeDescriptions":{}}},"id":75980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9088:6:159","memberName":"concat","nodeType":"MemberAccess","src":"9082:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9082:55:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9058:79:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75985,"nodeType":"ExpressionStatement","src":"9058:79:159"},{"assignments":[75987],"declarations":[{"constant":false,"id":75987,"mutability":"mutable","name":"codeId","nameLocation":"9160:6:159","nodeType":"VariableDeclaration","scope":76037,"src":"9152:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9152:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75990,"initialValue":{"expression":{"id":75988,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75966,"src":"9169:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9184:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"9169:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9152:34:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"},"id":75998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75992,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75946,"src":"9208:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9215:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9208:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75995,"indexExpression":{"id":75994,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75987,"src":"9221:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9208:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75996,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73476,"src":"9232:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73476_$","typeString":"type(enum IRouter.CodeState)"}},"id":75997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9242:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73474,"src":"9232:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"src":"9208:53:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":75999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9263:41:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":75991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9200:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76001,"nodeType":"ExpressionStatement","src":"9200:105:159"},{"condition":{"expression":{"id":76002,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75966,"src":"9324:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9339:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73480,"src":"9324:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76035,"nodeType":"Block","src":"9527:115:159","statements":[{"expression":{"id":76028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9545:27:159","subExpression":{"baseExpression":{"expression":{"id":76024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75946,"src":"9552:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9559:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9552:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76027,"indexExpression":{"id":76026,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75987,"src":"9565:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9552:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76029,"nodeType":"ExpressionStatement","src":"9545:27:159"},{"eventCall":{"arguments":[{"id":76031,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75987,"src":"9613:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":76032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9621:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76030,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73554,"src":"9596:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":76033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9596:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76034,"nodeType":"EmitStatement","src":"9591:36:159"}]},"id":76036,"nodeType":"IfStatement","src":"9320:322:159","trueBody":{"id":76023,"nodeType":"Block","src":"9346:175:159","statements":[{"expression":{"id":76011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76004,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75946,"src":"9364:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9371:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9364:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76008,"indexExpression":{"id":76006,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75987,"src":"9377:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9364:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76009,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73476,"src":"9387:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73476_$","typeString":"type(enum IRouter.CodeState)"}},"id":76010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9397:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73475,"src":"9387:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"src":"9364:42:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"id":76012,"nodeType":"ExpressionStatement","src":"9364:42:159"},{"expression":{"id":76016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9424:28:159","subExpression":{"expression":{"id":76013,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75946,"src":"9424:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9431:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73465,"src":"9424:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76017,"nodeType":"ExpressionStatement","src":"9424:28:159"},{"eventCall":{"arguments":[{"id":76019,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75987,"src":"9493:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":76020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9501:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76018,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73554,"src":"9476:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":76021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9476:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76022,"nodeType":"EmitStatement","src":"9471:35:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75954,"src":"8848:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75958,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75938,"src":"8852:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73481_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8873:6:159","memberName":"length","nodeType":"MemberAccess","src":"8852:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8848:31:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76038,"initializationExpression":{"assignments":[75954],"declarations":[{"constant":false,"id":75954,"mutability":"mutable","name":"i","nameLocation":"8841:1:159","nodeType":"VariableDeclaration","scope":76038,"src":"8833:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75953,"name":"uint256","nodeType":"ElementaryTypeName","src":"8833:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75956,"initialValue":{"hexValue":"30","id":75955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8845:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8833:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8881:3:159","subExpression":{"id":75961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75954,"src":"8881:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75963,"nodeType":"ExpressionStatement","src":"8881:3:159"},"nodeType":"ForStatement","src":"8828:824:159"},{"expression":{"arguments":[{"arguments":[{"id":76041,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75951,"src":"9692:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9682:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9682:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76043,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75941,"src":"9716:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76039,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76293,"src":"9662:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9662:65:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76045,"nodeType":"ExpressionStatement","src":"9662:65:159"}]},"baseFunctions":[73752],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8626:11:159","parameters":{"id":75942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75938,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8664:20:159","nodeType":"VariableDeclaration","scope":76047,"src":"8638:46:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73481_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":75936,"nodeType":"UserDefinedTypeName","pathNode":{"id":75935,"name":"CodeCommitment","nameLocations":["8638:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73481,"src":"8638:14:159"},"referencedDeclaration":73481,"src":"8638:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":75937,"nodeType":"ArrayTypeName","src":"8638:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73481_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":75941,"mutability":"mutable","name":"signatures","nameLocation":"8703:10:159","nodeType":"VariableDeclaration","scope":76047,"src":"8686:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":75939,"name":"bytes","nodeType":"ElementaryTypeName","src":"8686:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":75940,"nodeType":"ArrayTypeName","src":"8686:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8637:77:159"},"returnParameters":{"id":75943,"nodeType":"ParameterList","parameters":[],"src":"8724:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76105,"nodeType":"FunctionDefinition","src":"9740:604:159","nodes":[],"body":{"id":76104,"nodeType":"Block","src":"9883:461:159","nodes":[],"statements":[{"assignments":[76060],"declarations":[{"constant":false,"id":76060,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9906:22:159","nodeType":"VariableDeclaration","scope":76104,"src":"9893:35:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76059,"name":"bytes","nodeType":"ElementaryTypeName","src":"9893:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76061,"nodeType":"VariableDeclarationStatement","src":"9893:35:159"},{"body":{"id":76095,"nodeType":"Block","src":"9998:263:159","statements":[{"assignments":[76075],"declarations":[{"constant":false,"id":76075,"mutability":"mutable","name":"blockCommitment","nameLocation":"10037:15:159","nodeType":"VariableDeclaration","scope":76095,"src":"10012:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76074,"nodeType":"UserDefinedTypeName","pathNode":{"id":76073,"name":"BlockCommitment","nameLocations":["10012:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73494,"src":"10012:15:159"},"referencedDeclaration":73494,"src":"10012:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":76079,"initialValue":{"baseExpression":{"id":76076,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76051,"src":"10055:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73494_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76078,"indexExpression":{"id":76077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76063,"src":"10077:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10055:24:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"10012:67:159"},{"assignments":[76081],"declarations":[{"constant":false,"id":76081,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"10102:19:159","nodeType":"VariableDeclaration","scope":76095,"src":"10094:27:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10094:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76085,"initialValue":{"arguments":[{"id":76083,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"10137:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":76082,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"10124:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$73494_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":76084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10124:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10094:59:159"},{"expression":{"id":76093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76086,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"10168:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76090,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"10206:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76091,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76081,"src":"10230:19:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10193:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76087,"name":"bytes","nodeType":"ElementaryTypeName","src":"10193:5:159","typeDescriptions":{}}},"id":76089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10199:6:159","memberName":"concat","nodeType":"MemberAccess","src":"10193:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10193:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10168:82:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76094,"nodeType":"ExpressionStatement","src":"10168:82:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76063,"src":"9959:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76067,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76051,"src":"9963:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73494_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9985:6:159","memberName":"length","nodeType":"MemberAccess","src":"9963:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9959:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76096,"initializationExpression":{"assignments":[76063],"declarations":[{"constant":false,"id":76063,"mutability":"mutable","name":"i","nameLocation":"9952:1:159","nodeType":"VariableDeclaration","scope":76096,"src":"9944:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76062,"name":"uint256","nodeType":"ElementaryTypeName","src":"9944:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76065,"initialValue":{"hexValue":"30","id":76064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9956:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9944:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9993:3:159","subExpression":{"id":76070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76063,"src":"9993:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76072,"nodeType":"ExpressionStatement","src":"9993:3:159"},"nodeType":"ForStatement","src":"9939:322:159"},{"expression":{"arguments":[{"arguments":[{"id":76099,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"10301:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76098,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10291:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10291:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76101,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"10326:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76097,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76293,"src":"10271:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:66:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76103,"nodeType":"ExpressionStatement","src":"10271:66:159"}]},"baseFunctions":[73762],"functionSelector":"01b1d156","implemented":true,"kind":"function","modifiers":[{"id":76057,"kind":"modifierInvocation","modifierName":{"id":76056,"name":"nonReentrant","nameLocations":["9866:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":44000,"src":"9866:12:159"},"nodeType":"ModifierInvocation","src":"9866:12:159"}],"name":"commitBlocks","nameLocation":"9749:12:159","parameters":{"id":76055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76051,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9789:21:159","nodeType":"VariableDeclaration","scope":76105,"src":"9762:48:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73494_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":76049,"nodeType":"UserDefinedTypeName","pathNode":{"id":76048,"name":"BlockCommitment","nameLocations":["9762:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73494,"src":"9762:15:159"},"referencedDeclaration":73494,"src":"9762:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":76050,"nodeType":"ArrayTypeName","src":"9762:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73494_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":76054,"mutability":"mutable","name":"signatures","nameLocation":"9829:10:159","nodeType":"VariableDeclaration","scope":76105,"src":"9812:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76052,"name":"bytes","nodeType":"ElementaryTypeName","src":"9812:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76053,"nodeType":"ArrayTypeName","src":"9812:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9761:79:159"},"returnParameters":{"id":76058,"nodeType":"ParameterList","parameters":[],"src":"9883:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76204,"nodeType":"FunctionDefinition","src":"10386:1054:159","nodes":[],"body":{"id":76203,"nodeType":"Block","src":"10525:915:159","nodes":[],"statements":[{"assignments":[76120],"declarations":[{"constant":false,"id":76120,"mutability":"mutable","name":"router","nameLocation":"10551:6:159","nodeType":"VariableDeclaration","scope":76203,"src":"10535:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76119,"nodeType":"UserDefinedTypeName","pathNode":{"id":76118,"name":"Storage","nameLocations":["10535:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"10535:7:159"},"referencedDeclaration":73472,"src":"10535:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76123,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76121,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"10560:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10560:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10535:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76125,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"10592:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10599:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"10592:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73476_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76128,"indexExpression":{"id":76127,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"10605:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10592:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76129,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73476,"src":"10616:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73476_$","typeString":"type(enum IRouter.CodeState)"}},"id":76130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10626:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73475,"src":"10616:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73476","typeString":"enum IRouter.CodeState"}},"src":"10592:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":76132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10637:48:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":76124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10584:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10584:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76134,"nodeType":"ExpressionStatement","src":"10584:102:159"},{"assignments":[76136],"declarations":[{"constant":false,"id":76136,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10705:12:159","nodeType":"VariableDeclaration","scope":76203,"src":"10697:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76135,"name":"uint128","nodeType":"ElementaryTypeName","src":"10697:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76139,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76137,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10720:7:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":76138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10720:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10697:32:159"},{"assignments":[76141],"declarations":[{"constant":false,"id":76141,"mutability":"mutable","name":"executableBalance","nameLocation":"10807:17:159","nodeType":"VariableDeclaration","scope":76203,"src":"10799:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76140,"name":"uint128","nodeType":"ElementaryTypeName","src":"10799:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76153,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76146,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"10856:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10863:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"10856:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76145,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"10841:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$43166_$","typeString":"type(contract IERC20Metadata)"}},"id":76148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10841:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$43166","typeString":"contract IERC20Metadata"}},"id":76149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10876:8:159","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":43165,"src":"10841:43:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":76150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10841:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10835:51:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10827:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76142,"name":"uint128","nodeType":"ElementaryTypeName","src":"10827:7:159","typeDescriptions":{}}},"id":76152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10827:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10799:88:159"},{"assignments":[76155],"declarations":[{"constant":false,"id":76155,"mutability":"mutable","name":"totalValue","nameLocation":"10906:10:159","nodeType":"VariableDeclaration","scope":76203,"src":"10898:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76154,"name":"uint128","nodeType":"ElementaryTypeName","src":"10898:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76161,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76156,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76136,"src":"10919:12:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76157,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"10934:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10919:32:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76159,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76111,"src":"10954:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10919:41:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10898:62:159"},{"expression":{"arguments":[{"id":76163,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"10986:10:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76162,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76798,"src":"10971:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10971:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76165,"nodeType":"ExpressionStatement","src":"10971:26:159"},{"assignments":[76167],"declarations":[{"constant":false,"id":76167,"mutability":"mutable","name":"actorId","nameLocation":"11166:7:159","nodeType":"VariableDeclaration","scope":76203,"src":"11158:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76166,"name":"address","nodeType":"ElementaryTypeName","src":"11158:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76180,"initialValue":{"arguments":[{"expression":{"id":76170,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"11202:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11209:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"11202:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":76175,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"11249:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76176,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76109,"src":"11257:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11232:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11236:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11232:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11232:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76172,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11222:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76168,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"11176:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":76169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11183:18:159","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"11176:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11176:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11158:106:159"},{"expression":{"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76181,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"11275:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11282:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"11275:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76185,"indexExpression":{"id":76183,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76167,"src":"11291:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11275:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76186,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"11302:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11275:33:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76188,"nodeType":"ExpressionStatement","src":"11275:33:159"},{"expression":{"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11318:22:159","subExpression":{"expression":{"id":76189,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"11318:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11325:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73471,"src":"11318:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76193,"nodeType":"ExpressionStatement","src":"11318:22:159"},{"eventCall":{"arguments":[{"id":76195,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76167,"src":"11371:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76196,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"11380:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76194,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73561,"src":"11356:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11356:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76198,"nodeType":"EmitStatement","src":"11351:36:159"},{"expression":{"components":[{"id":76199,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76167,"src":"11406:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76200,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"11415:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76201,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11405:28:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":76117,"id":76202,"nodeType":"Return","src":"11398:35:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10395:28:159","parameters":{"id":76112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76107,"mutability":"mutable","name":"codeId","nameLocation":"10432:6:159","nodeType":"VariableDeclaration","scope":76204,"src":"10424:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10424:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76109,"mutability":"mutable","name":"salt","nameLocation":"10448:4:159","nodeType":"VariableDeclaration","scope":76204,"src":"10440:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10440:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76111,"mutability":"mutable","name":"_value","nameLocation":"10462:6:159","nodeType":"VariableDeclaration","scope":76204,"src":"10454:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76110,"name":"uint128","nodeType":"ElementaryTypeName","src":"10454:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10423:46:159"},"returnParameters":{"id":76117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76204,"src":"10503:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76113,"name":"address","nodeType":"ElementaryTypeName","src":"10503:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76204,"src":"10512:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76115,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10502:18:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76293,"nodeType":"FunctionDefinition","src":"11446:844:159","nodes":[],"body":{"id":76292,"nodeType":"Block","src":"11535:755:159","nodes":[],"statements":[{"assignments":[76214],"declarations":[{"constant":false,"id":76214,"mutability":"mutable","name":"router","nameLocation":"11561:6:159","nodeType":"VariableDeclaration","scope":76292,"src":"11545:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76213,"nodeType":"UserDefinedTypeName","pathNode":{"id":76212,"name":"Storage","nameLocations":["11545:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"11545:7:159"},"referencedDeclaration":73472,"src":"11545:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76217,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76215,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"11570:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11570:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11545:38:159"},{"assignments":[76219],"declarations":[{"constant":false,"id":76219,"mutability":"mutable","name":"threshold","nameLocation":"11602:9:159","nodeType":"VariableDeclaration","scope":76292,"src":"11594:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76218,"name":"uint256","nodeType":"ElementaryTypeName","src":"11594:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76222,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76220,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75624,"src":"11614:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":76221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11614:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11594:41:159"},{"assignments":[76224],"declarations":[{"constant":false,"id":76224,"mutability":"mutable","name":"messageHash","nameLocation":"11654:11:159","nodeType":"VariableDeclaration","scope":76292,"src":"11646:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11646:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76235,"initialValue":{"arguments":[{"arguments":[{"id":76232,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76206,"src":"11731:8:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11714:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11718:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11714:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76227,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11676:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76908","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76908","typeString":"contract Router"}],"id":76226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11668:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76225,"name":"address","nodeType":"ElementaryTypeName","src":"11668:7:159","typeDescriptions":{}}},"id":76228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11668:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11682:31:159","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"11668:45:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":76234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11668:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11646:95:159"},{"assignments":[76237],"declarations":[{"constant":false,"id":76237,"mutability":"mutable","name":"validSignatures","nameLocation":"11759:15:159","nodeType":"VariableDeclaration","scope":76292,"src":"11751:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76236,"name":"uint256","nodeType":"ElementaryTypeName","src":"11751:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76239,"initialValue":{"hexValue":"30","id":76238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11777:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11751:27:159"},{"body":{"id":76283,"nodeType":"Block","src":"11837:368:159","statements":[{"assignments":[76252],"declarations":[{"constant":false,"id":76252,"mutability":"mutable","name":"signature","nameLocation":"11866:9:159","nodeType":"VariableDeclaration","scope":76283,"src":"11851:24:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76251,"name":"bytes","nodeType":"ElementaryTypeName","src":"11851:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76256,"initialValue":{"baseExpression":{"id":76253,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76209,"src":"11878:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76255,"indexExpression":{"id":76254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76241,"src":"11889:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11878:13:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11851:40:159"},{"assignments":[76258],"declarations":[{"constant":false,"id":76258,"mutability":"mutable","name":"validator","nameLocation":"11914:9:159","nodeType":"VariableDeclaration","scope":76283,"src":"11906:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76257,"name":"address","nodeType":"ElementaryTypeName","src":"11906:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76263,"initialValue":{"arguments":[{"id":76261,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76252,"src":"11946:9:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":76259,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76224,"src":"11926:11:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11938:7:159","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":45005,"src":"11926:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":76262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11926:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11906:50:159"},{"condition":{"baseExpression":{"expression":{"id":76264,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"11975:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11982:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73455,"src":"11975:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76267,"indexExpression":{"id":76266,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76258,"src":"11993:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11975:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76281,"nodeType":"Block","src":"12125:70:159","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":76277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12151:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":76278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12158:21:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":76276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12143:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12143:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76280,"nodeType":"ExpressionStatement","src":"12143:37:159"}]},"id":76282,"nodeType":"IfStatement","src":"11971:224:159","trueBody":{"id":76275,"nodeType":"Block","src":"12005:114:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12027:17:159","subExpression":{"id":76268,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76237,"src":"12029:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76270,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"12048:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12027:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76274,"nodeType":"IfStatement","src":"12023:82:159","trueBody":{"id":76273,"nodeType":"Block","src":"12059:46:159","statements":[{"id":76272,"nodeType":"Break","src":"12081:5:159"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76241,"src":"11809:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76245,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76209,"src":"11813:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11824:6:159","memberName":"length","nodeType":"MemberAccess","src":"11813:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11809:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76284,"initializationExpression":{"assignments":[76241],"declarations":[{"constant":false,"id":76241,"mutability":"mutable","name":"i","nameLocation":"11802:1:159","nodeType":"VariableDeclaration","scope":76284,"src":"11794:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76240,"name":"uint256","nodeType":"ElementaryTypeName","src":"11794:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76243,"initialValue":{"hexValue":"30","id":76242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11806:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11794:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11832:3:159","subExpression":{"id":76248,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76241,"src":"11832:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76250,"nodeType":"ExpressionStatement","src":"11832:3:159"},"nodeType":"ForStatement","src":"11789:416:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76286,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76237,"src":"12223:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76287,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"12242:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12223:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":76289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12253:29:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":76285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12215:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12215:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76291,"nodeType":"ExpressionStatement","src":"12215:68:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11455:19:159","parameters":{"id":76210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76206,"mutability":"mutable","name":"dataHash","nameLocation":"11483:8:159","nodeType":"VariableDeclaration","scope":76293,"src":"11475:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11475:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76209,"mutability":"mutable","name":"signatures","nameLocation":"11510:10:159","nodeType":"VariableDeclaration","scope":76293,"src":"11493:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76207,"name":"bytes","nodeType":"ElementaryTypeName","src":"11493:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76208,"nodeType":"ArrayTypeName","src":"11493:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11474:47:159"},"returnParameters":{"id":76211,"nodeType":"ParameterList","parameters":[],"src":"11535:0:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76398,"nodeType":"FunctionDefinition","src":"12296:1366:159","nodes":[],"body":{"id":76397,"nodeType":"Block","src":"12386:1276:159","nodes":[],"statements":[{"assignments":[76303],"declarations":[{"constant":false,"id":76303,"mutability":"mutable","name":"router","nameLocation":"12412:6:159","nodeType":"VariableDeclaration","scope":76397,"src":"12396:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76302,"nodeType":"UserDefinedTypeName","pathNode":{"id":76301,"name":"Storage","nameLocations":["12396:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"12396:7:159"},"referencedDeclaration":73472,"src":"12396:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76304,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"12421:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12396:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"12466:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12473:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12466:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76310,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"12500:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12516:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73487,"src":"12500:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12466:68:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":76313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12536:34:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":76307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12445:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12445:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76315,"nodeType":"ExpressionStatement","src":"12445:135:159"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":76318,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"12617:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12633:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"12617:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76317,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76442,"src":"12598:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":76320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12598:49:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":76321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12649:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":76316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12590:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12590:97:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76323,"nodeType":"ExpressionStatement","src":"12590:97:159"},{"expression":{"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76324,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"12827:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12834:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12827:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76327,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"12860:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12876:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"12860:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12827:58:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76330,"nodeType":"ExpressionStatement","src":"12827:58:159"},{"expression":{"id":76336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76331,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"12895:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12902:28:159","memberName":"lastBlockCommitmentTimestamp","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"12895:35:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76334,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"12933:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12949:14:159","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"12933:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12895:68:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":76337,"nodeType":"ExpressionStatement","src":"12895:68:159"},{"assignments":[76339],"declarations":[{"constant":false,"id":76339,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12987:17:159","nodeType":"VariableDeclaration","scope":76397,"src":"12974:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76338,"name":"bytes","nodeType":"ElementaryTypeName","src":"12974:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76340,"nodeType":"VariableDeclarationStatement","src":"12974:30:159"},{"body":{"id":76376,"nodeType":"Block","src":"13080:255:159","statements":[{"assignments":[76355],"declarations":[{"constant":false,"id":76355,"mutability":"mutable","name":"stateTransition","nameLocation":"13119:15:159","nodeType":"VariableDeclaration","scope":76376,"src":"13094:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76354,"nodeType":"UserDefinedTypeName","pathNode":{"id":76353,"name":"StateTransition","nameLocations":["13094:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73511,"src":"13094:15:159"},"referencedDeclaration":73511,"src":"13094:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":76360,"initialValue":{"baseExpression":{"expression":{"id":76356,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13137:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13153:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73493,"src":"13137:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73511_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76359,"indexExpression":{"id":76358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"13165:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13137:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"13094:73:159"},{"assignments":[76362],"declarations":[{"constant":false,"id":76362,"mutability":"mutable","name":"transitionHash","nameLocation":"13190:14:159","nodeType":"VariableDeclaration","scope":76376,"src":"13182:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13182:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76366,"initialValue":{"arguments":[{"id":76364,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76355,"src":"13226:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":76363,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76660,"src":"13207:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$73511_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":76365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13207:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13182:60:159"},{"expression":{"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76367,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"13257:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76371,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"13290:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76372,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76362,"src":"13309:14:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13277:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76368,"name":"bytes","nodeType":"ElementaryTypeName","src":"13277:5:159","typeDescriptions":{}}},"id":76370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13283:6:159","memberName":"concat","nodeType":"MemberAccess","src":"13277:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13277:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13257:67:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76375,"nodeType":"ExpressionStatement","src":"13257:67:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"13035:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76346,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13039:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13055:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73493,"src":"13039:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73511_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13067:6:159","memberName":"length","nodeType":"MemberAccess","src":"13039:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13035:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76377,"initializationExpression":{"assignments":[76342],"declarations":[{"constant":false,"id":76342,"mutability":"mutable","name":"i","nameLocation":"13028:1:159","nodeType":"VariableDeclaration","scope":76377,"src":"13020:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76341,"name":"uint256","nodeType":"ElementaryTypeName","src":"13020:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76344,"initialValue":{"hexValue":"30","id":76343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13032:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13020:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13075:3:159","subExpression":{"id":76350,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"13075:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76352,"nodeType":"ExpressionStatement","src":"13075:3:159"},"nodeType":"ForStatement","src":"13015:320:159"},{"eventCall":{"arguments":[{"expression":{"id":76379,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13365:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13381:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"13365:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76378,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73540,"src":"13350:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13350:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76382,"nodeType":"EmitStatement","src":"13345:46:159"},{"expression":{"arguments":[{"expression":{"id":76384,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13443:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13459:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"13443:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76386,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13482:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13498:14:159","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"13482:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":76388,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13526:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13542:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73487,"src":"13526:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76390,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"13574:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13590:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"13574:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76393,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"13627:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76392,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13617:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13617:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76383,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"13409:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":76395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13409:246:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76300,"id":76396,"nodeType":"Return","src":"13402:253:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"12305:12:159","parameters":{"id":76297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76296,"mutability":"mutable","name":"blockCommitment","nameLocation":"12343:15:159","nodeType":"VariableDeclaration","scope":76398,"src":"12318:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76295,"nodeType":"UserDefinedTypeName","pathNode":{"id":76294,"name":"BlockCommitment","nameLocations":["12318:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73494,"src":"12318:15:159"},"referencedDeclaration":73494,"src":"12318:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73494_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"12317:42:159"},"returnParameters":{"id":76300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76398,"src":"12377:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12377:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12376:9:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76442,"nodeType":"FunctionDefinition","src":"13668:338:159","nodes":[],"body":{"id":76441,"nodeType":"Block","src":"13738:268:159","nodes":[],"statements":[{"body":{"id":76437,"nodeType":"Block","src":"13795:183:159","statements":[{"assignments":[76419],"declarations":[{"constant":false,"id":76419,"mutability":"mutable","name":"ret","nameLocation":"13817:3:159","nodeType":"VariableDeclaration","scope":76437,"src":"13809:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13809:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76423,"initialValue":{"arguments":[{"id":76421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"13833:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76420,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13823:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":76422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13823:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13809:26:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76424,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"13853:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76425,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"13860:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13853:11:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76430,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"13920:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13927:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13920:8:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76435,"nodeType":"IfStatement","src":"13916:52:159","trueBody":{"id":76434,"nodeType":"Block","src":"13930:38:159","statements":[{"id":76433,"nodeType":"Break","src":"13948:5:159"}]}},"id":76436,"nodeType":"IfStatement","src":"13849:119:159","trueBody":{"id":76429,"nodeType":"Block","src":"13866:44:159","statements":[{"expression":{"hexValue":"74727565","id":76427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13891:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":76404,"id":76428,"nodeType":"Return","src":"13884:11:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76412,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"13783:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13787:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13783:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76438,"initializationExpression":{"assignments":[76406],"declarations":[{"constant":false,"id":76406,"mutability":"mutable","name":"i","nameLocation":"13761:1:159","nodeType":"VariableDeclaration","scope":76438,"src":"13753:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76405,"name":"uint256","nodeType":"ElementaryTypeName","src":"13753:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76411,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76407,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13765:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":76408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13771:6:159","memberName":"number","nodeType":"MemberAccess","src":"13765:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13780:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13765:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13753:28:159"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":76416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13790:3:159","subExpression":{"id":76415,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"13790:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76417,"nodeType":"ExpressionStatement","src":"13790:3:159"},"nodeType":"ForStatement","src":"13748:230:159"},{"expression":{"hexValue":"66616c7365","id":76439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13994:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":76404,"id":76440,"nodeType":"Return","src":"13987:12:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13677:18:159","parameters":{"id":76401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76400,"mutability":"mutable","name":"hash","nameLocation":"13704:4:159","nodeType":"VariableDeclaration","scope":76442,"src":"13696:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13696:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13695:14:159"},"returnParameters":{"id":76404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76442,"src":"13732:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76402,"name":"bool","nodeType":"ElementaryTypeName","src":"13732:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13731:6:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76660,"nodeType":"FunctionDefinition","src":"14012:2340:159","nodes":[],"body":{"id":76659,"nodeType":"Block","src":"14108:2244:159","nodes":[],"statements":[{"assignments":[76452],"declarations":[{"constant":false,"id":76452,"mutability":"mutable","name":"router","nameLocation":"14134:6:159","nodeType":"VariableDeclaration","scope":76659,"src":"14118:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76451,"nodeType":"UserDefinedTypeName","pathNode":{"id":76450,"name":"Storage","nameLocations":["14118:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"14118:7:159"},"referencedDeclaration":73472,"src":"14118:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76455,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76453,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"14143:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14143:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14118:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76457,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76452,"src":"14175:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14182:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"14175:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76461,"indexExpression":{"expression":{"id":76459,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14191:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14207:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"14191:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14175:40:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14219:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14175:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":76464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14222:49:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":76456,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14167:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14167:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76466,"nodeType":"ExpressionStatement","src":"14167:105:159"},{"assignments":[76469],"declarations":[{"constant":false,"id":76469,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"14296:16:159","nodeType":"VariableDeclaration","scope":76659,"src":"14283:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"},"typeName":{"id":76468,"nodeType":"UserDefinedTypeName","pathNode":{"id":76467,"name":"IWrappedVara","nameLocations":["14283:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":73774,"src":"14283:12:159"},"referencedDeclaration":73774,"src":"14283:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76474,"initialValue":{"arguments":[{"expression":{"id":76471,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76452,"src":"14328:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14335:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"14328:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76470,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73774,"src":"14315:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73774_$","typeString":"type(contract IWrappedVara)"}},"id":76473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14315:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"14283:64:159"},{"expression":{"arguments":[{"expression":{"id":76478,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14383:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14399:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"14383:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76480,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14408:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14424:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"14408:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76475,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76469,"src":"14357:16:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73774","typeString":"contract IWrappedVara"}},"id":76477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:159","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"14357:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14357:82:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76483,"nodeType":"ExpressionStatement","src":"14357:82:159"},{"assignments":[76486],"declarations":[{"constant":false,"id":76486,"mutability":"mutable","name":"mirrorActor","nameLocation":"14458:11:159","nodeType":"VariableDeclaration","scope":76659,"src":"14450:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":76485,"nodeType":"UserDefinedTypeName","pathNode":{"id":76484,"name":"IMirror","nameLocations":["14450:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"14450:7:159"},"referencedDeclaration":73387,"src":"14450:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76491,"initialValue":{"arguments":[{"expression":{"id":76488,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14480:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14496:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"14480:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76487,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"14472:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":76490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"14450:54:159"},{"assignments":[76493],"declarations":[{"constant":false,"id":76493,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14528:16:159","nodeType":"VariableDeclaration","scope":76659,"src":"14515:29:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76492,"name":"bytes","nodeType":"ElementaryTypeName","src":"14515:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76494,"nodeType":"VariableDeclarationStatement","src":"14515:29:159"},{"body":{"id":76543,"nodeType":"Block","src":"14620:367:159","statements":[{"assignments":[76509],"declarations":[{"constant":false,"id":76509,"mutability":"mutable","name":"valueClaim","nameLocation":"14654:10:159","nodeType":"VariableDeclaration","scope":76543,"src":"14634:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":76508,"nodeType":"UserDefinedTypeName","pathNode":{"id":76507,"name":"ValueClaim","nameLocations":["14634:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":73518,"src":"14634:10:159"},"referencedDeclaration":73518,"src":"14634:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":76514,"initialValue":{"baseExpression":{"expression":{"id":76510,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14667:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14683:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14667:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73518_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76513,"indexExpression":{"id":76512,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"14695:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14667:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14634:63:159"},{"expression":{"id":76530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76515,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76493,"src":"14712:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76519,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76493,"src":"14761:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76522,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14796:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14807:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14796:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76524,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14818:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14829:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73515,"src":"14818:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76526,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14842:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14853:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73517,"src":"14842:16:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14779:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14783:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"14779:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14779:80:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":76517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14731:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76516,"name":"bytes","nodeType":"ElementaryTypeName","src":"14731:5:159","typeDescriptions":{}}},"id":76518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14737:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14731:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14731:142:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14712:161:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76531,"nodeType":"ExpressionStatement","src":"14712:161:159"},{"expression":{"arguments":[{"expression":{"id":76535,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14913:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14924:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14913:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76537,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14935:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14946:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73515,"src":"14935:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76539,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"14959:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73518_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14970:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73517,"src":"14959:16:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76532,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"14888:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14900:12:159","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":73368,"src":"14888:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":76541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14888:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76542,"nodeType":"ExpressionStatement","src":"14888:88:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"14575:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76500,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"14579:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14595:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14579:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73518_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14607:6:159","memberName":"length","nodeType":"MemberAccess","src":"14579:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14575:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76544,"initializationExpression":{"assignments":[76496],"declarations":[{"constant":false,"id":76496,"mutability":"mutable","name":"i","nameLocation":"14568:1:159","nodeType":"VariableDeclaration","scope":76544,"src":"14560:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76495,"name":"uint256","nodeType":"ElementaryTypeName","src":"14560:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76498,"initialValue":{"hexValue":"30","id":76497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14572:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14560:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14615:3:159","subExpression":{"id":76504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"14615:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76506,"nodeType":"ExpressionStatement","src":"14615:3:159"},"nodeType":"ForStatement","src":"14555:432:159"},{"assignments":[76546],"declarations":[{"constant":false,"id":76546,"mutability":"mutable","name":"messagesHashes","nameLocation":"15010:14:159","nodeType":"VariableDeclaration","scope":76659,"src":"14997:27:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76545,"name":"bytes","nodeType":"ElementaryTypeName","src":"14997:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76547,"nodeType":"VariableDeclarationStatement","src":"14997:27:159"},{"body":{"id":76617,"nodeType":"Block","src":"15097:764:159","statements":[{"assignments":[76562],"declarations":[{"constant":false,"id":76562,"mutability":"mutable","name":"outgoingMessage","nameLocation":"15136:15:159","nodeType":"VariableDeclaration","scope":76617,"src":"15111:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76561,"nodeType":"UserDefinedTypeName","pathNode":{"id":76560,"name":"OutgoingMessage","nameLocations":["15111:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73530,"src":"15111:15:159"},"referencedDeclaration":73530,"src":"15111:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":76567,"initialValue":{"baseExpression":{"expression":{"id":76563,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"15154:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15170:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73510,"src":"15154:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73530_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76566,"indexExpression":{"id":76565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76549,"src":"15179:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15154:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"15111:70:159"},{"expression":{"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76568,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76546,"src":"15196:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76572,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76546,"src":"15226:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":76574,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15263:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":76573,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76746,"src":"15242:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$73530_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15242:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15213:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76569,"name":"bytes","nodeType":"ElementaryTypeName","src":"15213:5:159","typeDescriptions":{}}},"id":76571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15219:6:159","memberName":"concat","nodeType":"MemberAccess","src":"15213:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15213:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15196:84:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76578,"nodeType":"ExpressionStatement","src":"15196:84:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76579,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15299:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15315:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73529,"src":"15299:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73535_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15328:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73532,"src":"15299:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15334:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15299:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76615,"nodeType":"Block","src":"15534:317:159","statements":[{"expression":{"arguments":[{"expression":{"id":76601,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15595:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15611:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15595:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76603,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15644:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15660:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"15644:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76605,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15689:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15705:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73526,"src":"15689:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76607,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15732:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15748:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73529,"src":"15732:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73535_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15761:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73532,"src":"15732:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76610,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15785:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15801:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73529,"src":"15785:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73535_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15814:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73534,"src":"15785:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76598,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15552:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15564:9:159","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":73359,"src":"15552:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15552:284:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76614,"nodeType":"ExpressionStatement","src":"15552:284:159"}]},"id":76616,"nodeType":"IfStatement","src":"15295:556:159","trueBody":{"id":76597,"nodeType":"Block","src":"15337:191:159","statements":[{"expression":{"arguments":[{"expression":{"id":76587,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15400:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15416:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15400:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76589,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15420:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15436:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15420:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76591,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15449:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15465:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"15449:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76593,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"15474:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15490:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73526,"src":"15474:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76584,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15355:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15367:11:159","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":73346,"src":"15355:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15355:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76596,"nodeType":"ExpressionStatement","src":"15355:158:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76552,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76549,"src":"15055:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76553,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"15059:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15075:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73510,"src":"15059:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73530_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15084:6:159","memberName":"length","nodeType":"MemberAccess","src":"15059:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15055:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76618,"initializationExpression":{"assignments":[76549],"declarations":[{"constant":false,"id":76549,"mutability":"mutable","name":"i","nameLocation":"15048:1:159","nodeType":"VariableDeclaration","scope":76618,"src":"15040:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76548,"name":"uint256","nodeType":"ElementaryTypeName","src":"15040:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76551,"initialValue":{"hexValue":"30","id":76550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15052:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15040:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15092:3:159","subExpression":{"id":76557,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76549,"src":"15092:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76559,"nodeType":"ExpressionStatement","src":"15092:3:159"},"nodeType":"ForStatement","src":"15035:826:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76619,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"15875:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15891:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73500,"src":"15875:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15912:1:159","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":76622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15904:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76621,"name":"address","nodeType":"ElementaryTypeName","src":"15904:7:159","typeDescriptions":{}}},"id":76624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15904:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15875:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76634,"nodeType":"IfStatement","src":"15871:121:159","trueBody":{"id":76633,"nodeType":"Block","src":"15916:76:159","statements":[{"expression":{"arguments":[{"expression":{"id":76629,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"15955:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15971:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73500,"src":"15955:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":76626,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"15930:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15942:12:159","memberName":"setInheritor","nodeType":"MemberAccess","referencedDeclaration":73335,"src":"15930:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":76631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15930:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76632,"nodeType":"ExpressionStatement","src":"15930:51:159"}]}},{"expression":{"arguments":[{"expression":{"id":76638,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"16026:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16042:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"16026:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76635,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"16002:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16014:11:159","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":73330,"src":"16002:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":76640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16002:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76641,"nodeType":"ExpressionStatement","src":"16002:53:159"},{"expression":{"arguments":[{"expression":{"id":76643,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"16107:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16123:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"16107:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76645,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"16144:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16160:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"16144:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76647,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"16186:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16202:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73500,"src":"16186:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76649,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76445,"src":"16225:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16241:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"16225:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76652,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76493,"src":"16279:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76651,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16269:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16269:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76655,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76546,"src":"16320:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16310:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16310:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76642,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"src":"16073:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":76657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16073:272:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76449,"id":76658,"nodeType":"Return","src":"16066:279:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"14021:18:159","parameters":{"id":76446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76445,"mutability":"mutable","name":"stateTransition","nameLocation":"14065:15:159","nodeType":"VariableDeclaration","scope":76660,"src":"14040:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76444,"nodeType":"UserDefinedTypeName","pathNode":{"id":76443,"name":"StateTransition","nameLocations":["14040:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73511,"src":"14040:15:159"},"referencedDeclaration":73511,"src":"14040:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73511_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"14039:42:159"},"returnParameters":{"id":76449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76660,"src":"14099:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14099:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14098:9:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76687,"nodeType":"FunctionDefinition","src":"16358:389:159","nodes":[],"body":{"id":76686,"nodeType":"Block","src":"16589:158:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76678,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76662,"src":"16646:9:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76679,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76664,"src":"16657:14:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76680,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"src":"16673:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76681,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76668,"src":"16693:13:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76682,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76670,"src":"16708:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16629:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16633:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16629:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16629:101:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76675,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16606:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:134:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76674,"id":76685,"nodeType":"Return","src":"16599:141:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"16367:20:159","parameters":{"id":76671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76662,"mutability":"mutable","name":"blockHash","nameLocation":"16405:9:159","nodeType":"VariableDeclaration","scope":76687,"src":"16397:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16397:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76664,"mutability":"mutable","name":"blockTimestamp","nameLocation":"16431:14:159","nodeType":"VariableDeclaration","scope":76687,"src":"16424:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76663,"name":"uint48","nodeType":"ElementaryTypeName","src":"16424:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76666,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"16463:18:159","nodeType":"VariableDeclaration","scope":76687,"src":"16455:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16455:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76668,"mutability":"mutable","name":"predBlockHash","nameLocation":"16499:13:159","nodeType":"VariableDeclaration","scope":76687,"src":"16491:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16491:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76670,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"16530:21:159","nodeType":"VariableDeclaration","scope":76687,"src":"16522:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16522:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16387:170:159"},"returnParameters":{"id":76674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76687,"src":"16580:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16580:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16579:9:159"},"scope":76908,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76717,"nodeType":"FunctionDefinition","src":"16753:410:159","nodes":[],"body":{"id":76716,"nodeType":"Block","src":"17003:160:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76707,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76689,"src":"17060:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76708,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76691,"src":"17069:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76709,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"17083:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76710,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17094:14:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76711,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17110:15:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76712,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17127:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76705,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17043:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17047:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17043:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17043:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76704,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17020:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17020:136:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76703,"id":76715,"nodeType":"Return","src":"17013:143:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16762:20:159","parameters":{"id":76700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76689,"mutability":"mutable","name":"actorId","nameLocation":"16800:7:159","nodeType":"VariableDeclaration","scope":76717,"src":"16792:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76688,"name":"address","nodeType":"ElementaryTypeName","src":"16792:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76691,"mutability":"mutable","name":"newStateHash","nameLocation":"16825:12:159","nodeType":"VariableDeclaration","scope":76717,"src":"16817:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16817:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76693,"mutability":"mutable","name":"inheritor","nameLocation":"16855:9:159","nodeType":"VariableDeclaration","scope":76717,"src":"16847:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76692,"name":"address","nodeType":"ElementaryTypeName","src":"16847:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76695,"mutability":"mutable","name":"valueToReceive","nameLocation":"16882:14:159","nodeType":"VariableDeclaration","scope":76717,"src":"16874:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76694,"name":"uint128","nodeType":"ElementaryTypeName","src":"16874:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16914:15:159","nodeType":"VariableDeclaration","scope":76717,"src":"16906:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16906:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76699,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16947:18:159","nodeType":"VariableDeclaration","scope":76717,"src":"16939:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16939:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16782:189:159"},"returnParameters":{"id":76703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76717,"src":"16994:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16994:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16993:9:159"},"scope":76908,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76746,"nodeType":"FunctionDefinition","src":"17169:451:159","nodes":[],"body":{"id":76745,"nodeType":"Block","src":"17272:348:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76728,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17346:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17362:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"17346:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76730,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17382:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17398:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"17382:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76732,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17427:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17443:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73524,"src":"17427:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76734,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17468:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17484:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73526,"src":"17468:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76736,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17507:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17523:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73529,"src":"17507:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73535_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17536:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73532,"src":"17507:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76739,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76720,"src":"17556:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17572:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73529,"src":"17556:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73535_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17585:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73534,"src":"17556:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76726,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17312:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17316:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17312:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17312:291:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76725,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17289:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17289:324:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76724,"id":76744,"nodeType":"Return","src":"17282:331:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"17178:20:159","parameters":{"id":76721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76720,"mutability":"mutable","name":"outgoingMessage","nameLocation":"17224:15:159","nodeType":"VariableDeclaration","scope":76746,"src":"17199:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76719,"nodeType":"UserDefinedTypeName","pathNode":{"id":76718,"name":"OutgoingMessage","nameLocations":["17199:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73530,"src":"17199:15:159"},"referencedDeclaration":73530,"src":"17199:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73530_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"17198:42:159"},"returnParameters":{"id":76724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76746,"src":"17263:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17263:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17262:9:159"},"scope":76908,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76765,"nodeType":"FunctionDefinition","src":"17626:192:159","nodes":[],"body":{"id":76764,"nodeType":"Block","src":"17726:92:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76757,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76749,"src":"17770:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17785:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"17770:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76759,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76749,"src":"17789:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17804:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73480,"src":"17789:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":76755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17753:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17757:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17753:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17753:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76754,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17743:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17743:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76753,"id":76763,"nodeType":"Return","src":"17736:75:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"17635:19:159","parameters":{"id":76750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76749,"mutability":"mutable","name":"codeCommitment","nameLocation":"17679:14:159","nodeType":"VariableDeclaration","scope":76765,"src":"17655:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":76748,"nodeType":"UserDefinedTypeName","pathNode":{"id":76747,"name":"CodeCommitment","nameLocations":["17655:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73481,"src":"17655:14:159"},"referencedDeclaration":73481,"src":"17655:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73481_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"17654:40:159"},"returnParameters":{"id":76753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76765,"src":"17717:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17717:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17716:9:159"},"scope":76908,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76798,"nodeType":"FunctionDefinition","src":"17824:257:159","nodes":[],"body":{"id":76797,"nodeType":"Block","src":"17872:209:159","nodes":[],"statements":[{"assignments":[76772],"declarations":[{"constant":false,"id":76772,"mutability":"mutable","name":"router","nameLocation":"17898:6:159","nodeType":"VariableDeclaration","scope":76797,"src":"17882:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76771,"nodeType":"UserDefinedTypeName","pathNode":{"id":76770,"name":"Storage","nameLocations":["17882:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"17882:7:159"},"referencedDeclaration":73472,"src":"17882:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76775,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76773,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"17907:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17907:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17882:38:159"},{"assignments":[76777],"declarations":[{"constant":false,"id":76777,"mutability":"mutable","name":"success","nameLocation":"17936:7:159","nodeType":"VariableDeclaration","scope":76797,"src":"17931:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76776,"name":"bool","nodeType":"ElementaryTypeName","src":"17931:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76791,"initialValue":{"arguments":[{"expression":{"id":76783,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17986:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":76784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17989:6:159","memberName":"origin","nodeType":"MemberAccess","src":"17986:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76787,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18005:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76908","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76908","typeString":"contract Router"}],"id":76786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17997:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76785,"name":"address","nodeType":"ElementaryTypeName","src":"17997:7:159","typeDescriptions":{}}},"id":76788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17997:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76789,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76767,"src":"18012:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"id":76779,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76772,"src":"17953:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17960:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"17953:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76778,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"17946:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$43140_$","typeString":"type(contract IERC20)"}},"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17946:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$43140","typeString":"contract IERC20"}},"id":76782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17973:12:159","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"17946:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17946:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17931:88:159"},{"expression":{"arguments":[{"id":76793,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76777,"src":"18038:7:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":76794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18047:26:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":76792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18030:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18030:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76796,"nodeType":"ExpressionStatement","src":"18030:44:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17833:14:159","parameters":{"id":76768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76767,"mutability":"mutable","name":"_value","nameLocation":"17856:6:159","nodeType":"VariableDeclaration","scope":76798,"src":"17848:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76766,"name":"uint128","nodeType":"ElementaryTypeName","src":"17848:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17847:16:159"},"returnParameters":{"id":76769,"nodeType":"ParameterList","parameters":[],"src":"17872:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76839,"nodeType":"FunctionDefinition","src":"18087:317:159","nodes":[],"body":{"id":76838,"nodeType":"Block","src":"18123:281:159","nodes":[],"statements":[{"assignments":[76803],"declarations":[{"constant":false,"id":76803,"mutability":"mutable","name":"router","nameLocation":"18149:6:159","nodeType":"VariableDeclaration","scope":76838,"src":"18133:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76802,"nodeType":"UserDefinedTypeName","pathNode":{"id":76801,"name":"Storage","nameLocations":["18133:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"18133:7:159"},"referencedDeclaration":73472,"src":"18133:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76806,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76804,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"18158:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18158:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18133:38:159"},{"body":{"id":76832,"nodeType":"Block","src":"18241:118:159","statements":[{"assignments":[76820],"declarations":[{"constant":false,"id":76820,"mutability":"mutable","name":"validator","nameLocation":"18263:9:159","nodeType":"VariableDeclaration","scope":76832,"src":"18255:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76819,"name":"address","nodeType":"ElementaryTypeName","src":"18255:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76825,"initialValue":{"baseExpression":{"expression":{"id":76821,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76803,"src":"18275:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18282:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"18275:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76824,"indexExpression":{"id":76823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"18297:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18275:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18255:44:159"},{"expression":{"id":76830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18313:35:159","subExpression":{"baseExpression":{"expression":{"id":76826,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76803,"src":"18320:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18327:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73455,"src":"18320:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76829,"indexExpression":{"id":76828,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76820,"src":"18338:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18320:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76831,"nodeType":"ExpressionStatement","src":"18313:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"18202:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76803,"src":"18206:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18213:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"18206:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18228:6:159","memberName":"length","nodeType":"MemberAccess","src":"18206:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18202:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76833,"initializationExpression":{"assignments":[76808],"declarations":[{"constant":false,"id":76808,"mutability":"mutable","name":"i","nameLocation":"18195:1:159","nodeType":"VariableDeclaration","scope":76833,"src":"18187:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18187:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76810,"initialValue":{"hexValue":"30","id":76809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18199:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18187:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18236:3:159","subExpression":{"id":76816,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"18236:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76818,"nodeType":"ExpressionStatement","src":"18236:3:159"},"nodeType":"ForStatement","src":"18182:177:159"},{"expression":{"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18369:28:159","subExpression":{"expression":{"id":76834,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76803,"src":"18376:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18383:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"18376:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76837,"nodeType":"ExpressionStatement","src":"18369:28:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"18096:16:159","parameters":{"id":76799,"nodeType":"ParameterList","parameters":[],"src":"18112:2:159"},"returnParameters":{"id":76800,"nodeType":"ParameterList","parameters":[],"src":"18123:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76894,"nodeType":"FunctionDefinition","src":"18410:442:159","nodes":[],"body":{"id":76893,"nodeType":"Block","src":"18477:375:159","nodes":[],"statements":[{"assignments":[76847],"declarations":[{"constant":false,"id":76847,"mutability":"mutable","name":"router","nameLocation":"18503:6:159","nodeType":"VariableDeclaration","scope":76893,"src":"18487:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76846,"nodeType":"UserDefinedTypeName","pathNode":{"id":76845,"name":"Storage","nameLocations":["18487:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"18487:7:159"},"referencedDeclaration":73472,"src":"18487:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76848,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"18512:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73472_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18512:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18487:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76852,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"18544:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18551:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"18544:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18566:6:159","memberName":"length","nodeType":"MemberAccess","src":"18544:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18576:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18544:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":76857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18579:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":76851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18536:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18536:81:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76859,"nodeType":"ExpressionStatement","src":"18536:81:159"},{"body":{"id":76885,"nodeType":"Block","src":"18682:113:159","statements":[{"assignments":[76872],"declarations":[{"constant":false,"id":76872,"mutability":"mutable","name":"validator","nameLocation":"18704:9:159","nodeType":"VariableDeclaration","scope":76885,"src":"18696:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76871,"name":"address","nodeType":"ElementaryTypeName","src":"18696:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76876,"initialValue":{"baseExpression":{"id":76873,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76842,"src":"18716:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76875,"indexExpression":{"id":76874,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"18733:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18716:19:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18696:39:159"},{"expression":{"id":76883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76877,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"18749:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18756:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73455,"src":"18749:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76881,"indexExpression":{"id":76879,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76872,"src":"18767:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18749:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18780:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18749:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76884,"nodeType":"ExpressionStatement","src":"18749:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"18648:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76865,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76842,"src":"18652:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18669:6:159","memberName":"length","nodeType":"MemberAccess","src":"18652:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18648:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76886,"initializationExpression":{"assignments":[76861],"declarations":[{"constant":false,"id":76861,"mutability":"mutable","name":"i","nameLocation":"18641:1:159","nodeType":"VariableDeclaration","scope":76886,"src":"18633:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76860,"name":"uint256","nodeType":"ElementaryTypeName","src":"18633:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76863,"initialValue":{"hexValue":"30","id":76862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18645:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18633:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18677:3:159","subExpression":{"id":76868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"18677:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76870,"nodeType":"ExpressionStatement","src":"18677:3:159"},"nodeType":"ForStatement","src":"18628:167:159"},{"expression":{"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76887,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"18805:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18812:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73458,"src":"18805:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76890,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76842,"src":"18829:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18805:40:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76892,"nodeType":"ExpressionStatement","src":"18805:40:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"18419:14:159","parameters":{"id":76843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76842,"mutability":"mutable","name":"_validatorsArray","nameLocation":"18451:16:159","nodeType":"VariableDeclaration","scope":76894,"src":"18434:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76840,"name":"address","nodeType":"ElementaryTypeName","src":"18434:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76841,"nodeType":"ArrayTypeName","src":"18434:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18433:35:159"},"returnParameters":{"id":76844,"nodeType":"ParameterList","parameters":[],"src":"18477:0:159"},"scope":76908,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76907,"nodeType":"FunctionDefinition","src":"18858:222:159","nodes":[],"body":{"id":76906,"nodeType":"Block","src":"18927:153:159","nodes":[],"statements":[{"assignments":[76901],"declarations":[{"constant":false,"id":76901,"mutability":"mutable","name":"slot","nameLocation":"18945:4:159","nodeType":"VariableDeclaration","scope":76906,"src":"18937:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18937:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76904,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76902,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75365,"src":"18952:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18952:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18937:31:159"},{"AST":{"nativeSrc":"19031:43:159","nodeType":"YulBlock","src":"19031:43:159","statements":[{"nativeSrc":"19045:19:159","nodeType":"YulAssignment","src":"19045:19:159","value":{"name":"slot","nativeSrc":"19060:4:159","nodeType":"YulIdentifier","src":"19060:4:159"},"variableNames":[{"name":"router.slot","nativeSrc":"19045:11:159","nodeType":"YulIdentifier","src":"19045:11:159"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":76898,"isOffset":false,"isSlot":true,"src":"19045:11:159","suffix":"slot","valueSize":1},{"declaration":76901,"isOffset":false,"isSlot":false,"src":"19060:4:159","valueSize":1}],"id":76905,"nodeType":"InlineAssembly","src":"19022:52:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18867:11:159","parameters":{"id":76895,"nodeType":"ParameterList","parameters":[],"src":"18878:2:159"},"returnParameters":{"id":76899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76898,"mutability":"mutable","name":"router","nameLocation":"18919:6:159","nodeType":"VariableDeclaration","scope":76907,"src":"18903:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76897,"nodeType":"UserDefinedTypeName","pathNode":{"id":76896,"name":"Storage","nameLocations":["18903:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73472,"src":"18903:7:159"},"referencedDeclaration":73472,"src":"18903:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73472_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18902:24:159"},"scope":76908,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":75168,"name":"IRouter","nameLocations":["898:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73763,"src":"898:7:159"},"id":75169,"nodeType":"InheritanceSpecifier","src":"898:7:159"},{"baseName":{"id":75170,"name":"OwnableUpgradeable","nameLocations":["907:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"907:18:159"},"id":75171,"nodeType":"InheritanceSpecifier","src":"907:18:159"},{"baseName":{"id":75172,"name":"ReentrancyGuardTransient","nameLocations":["927:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":44045,"src":"927:24:159"},"id":75173,"nodeType":"InheritanceSpecifier","src":"927:24:159"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76908,44045,39387,40535,39641,73763],"name":"Router","nameLocation":"888:6:159","scope":76909,"usedErrors":[39223,39228,39404,39407,43912,43918,43989,44912,44917,44922],"usedEvents":[39234,39412,73540,73547,73554,73561,73564,73567,73572,73577]}],"license":"UNLICENSED"},"id":159} \ No newline at end of file diff --git a/ethexe/ethereum/WrappedVara.json b/ethexe/ethereum/WrappedVara.json index eef4e7d2a3e..7871983cba7 100644 --- a/ethexe/ethereum/WrappedVara.json +++ b/ethexe/ethereum/WrappedVara.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cbe90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;8837:64:26;632:990:160;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;632:990:160;;7985:34:26;7981:146;;-1:-1:-1;632:990:160;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;;;8837:64:26;632:990:160;;;8087:29:26;;632:990:160;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;632:990:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2357:1:25;632:990:160;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;:::-;632:990:160;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;4867:20:27;632:990:160;;:::i;:::-;4867:20:27;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:29;;:26;2297:97;;6967:25:66;7021:8;632:990:160;;;;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;2435:78:29;632:990:160;2435:78:29;;632:990:160;1279:95:29;632:990:160;;1279:95:29;632:990:160;1279:95:29;;632:990:160;;;;;;;;;1279:95:29;;632:990:160;1279:95:29;632:990:160;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;2435:78:29;;;632:990:160;2435:78:29;;:::i;:::-;632:990:160;2425:89:29;;4094:23:33;;:::i;:::-;3515:233:68;632:990:160;3515:233:68;;-1:-1:-1;;;3515:233:68;;;;;;;;;;632:990:160;;;3515:233:68;632:990:160;;3515:233:68;;6967:25:66;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:990:160;2638:15:29;;;2634:88;;10117:4:27;;;;;:::i;2634:88:29:-;2676:35;;;;;632:990:160;2676:35:29;632:990:160;;;;;;2676:35:29;2297:97;2350:33;;;;632:990:160;2350:33:29;632:990:160;;;;2350:33:29;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;4301:16:26;632:990:160;;;;4726:16:26;;:34;;;;632:990:160;4805:1:26;4790:16;:50;;;;632:990:160;4855:13:26;:30;;;;632:990:160;4851:91:26;;;-1:-1:-1;;632:990:160;;4805:1:26;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;4979:67:26;;632:990:160;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;:::i;:::-;821:14;632:990;;-1:-1:-1;;;632:990:160;821:14;;;6893:76:26;;:::i;:::-;;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;6893:76:26;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;4805:1:26;632:990:160;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;2806:64:33;632:990:160;;;3902:16:33;632:990:160;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;941:9:160;8928:5:27;;;:::i;:::-;5066:101:26;;632:990:160;5066:101:26;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;5142:14:26;632:990:160;;;4805:1:26;632:990:160;;5142:14:26;632:990:160;8799:91:27;8847:32;;;632:990:160;8847:32:27;632:990:160;;;;;8847:32:27;632:990:160;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;4979:67:26;-1:-1:-1;;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;4979:67:26;;;4851:91;6498:23;;;632:990:160;4908:23:26;632:990:160;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;4616:5:27;632:990:160;;:::i;:::-;;;966:10:30;;4616:5:27;:::i;:::-;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;-1:-1:-1;;;;;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2806:64:33;632:990:160;5777:18:33;:43;;;632:990:160;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:33;632:990:160;;;;6000:4:33;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;5777:43:33;632:990:160;5799:16:33;632:990:160;5799:21:33;5777:43;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;1479:5:28;632:990:160;;:::i;:::-;;;966:10:30;1448:5:28;966:10:30;;1448:5:28;;:::i;:::-;1479;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;632:990:160;;3975:40:25;632:990:160;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;6431:44:26;;;;632:990:160;6427:105:26;;1427:1:160;632:990;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;6656:20:26;632:990:160;;;1427:1;632:990;;6656:20:26;632:990:160;6431:44:26;632:990:160;1427:1;632:990;;;6450:25:26;;6431:44;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;1005:5:28;632:990:160;;966:10:30;1005:5:28;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;8928:5;632:990:160;;;8928:5:27;;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;4094:23:33;;:::i;:::-;632:990:160;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;1512:2;632:990;;;;;;;;;-1:-1:-1;;632:990:160;;;;6198:5:27;632:990:160;;:::i;:::-;;;:::i;:::-;;;966:10:30;6162:5:27;966:10:30;;6162:5:27;;:::i;:::-;6198;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;10117:4:27;632:990:160;;:::i;:::-;;;966:10:30;;10117:4:27;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:990:160;;;;;4867:13:27;632:990:160;;;;;;:::o;3405:215:25:-;-1:-1:-1;;;;;632:990:160;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:990:160;;3509:1:25;3534:31;11745:477:27;;;4867:20;;;:::i;:::-;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11910:37:27;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:990:160;;11141:19:27;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;11235:90;;11334:20;;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11906:310:27;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:27;-1:-1:-1;11283:31:27;632:990:160;;-1:-1:-1;11283:31:27;11137:89;11183:32;;;-1:-1:-1;11183:32:27;-1:-1:-1;11183:32:27;632:990:160;;-1:-1:-1;11183:32:27;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:27;632:990:160;;;;;;12018:60:27;632:990:160;;;;;;-1:-1:-1;12018:60:27;6605:300;-1:-1:-1;;;;;632:990:160;;6688:18:27;;6684:86;;-1:-1:-1;;;;;632:990:160;;6783:16:27;;6779:86;;632:990:160;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;8358:25:27;632:990:160;;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;6704:1:27;632:990:160;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;;;;;;;;;;;8358:25:27;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:990:160;;;;;;6704:1:27;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:990:160;;6704:1:27;6729:30;2658:162:25;-1:-1:-1;;;;;;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;632:990:160;;-1:-1:-1;2763:40:25;9259:206:27;;;;-1:-1:-1;;;;;632:990:160;9329:21:27;;9325:89;;632:990:160;9348:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;9348:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;;9348:1:27;632:990:160;;8358:25:27;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;8358:25:27;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:990:160;;;;;;9348:1:27;7655:50;10976:487;;-1:-1:-1;;;;;632:990:160;;;11141:19:27;;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;;11235:90;;11415:31;11334:20;;632:990:160;11334:20:27;;:::i;:::-;632:990:160;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;11415:31:27;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;;;8358:25:27;;632:990:160;;7918:16:27;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;7914:429:27;632:990:160;;;;;8358:25:27;7220:1170::o;7914:429::-;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;7914:429:27;;632:990:160;;;;;941:9;;;;;632:990;941:9;4130:191:33;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:990:160;;4221:92:33;;;;632:990:160;2073:95:33;632:990:160;;;2073:95:33;;632:990:160;2073:95:33;;;632:990:160;4284:13:33;2073:95;;;632:990:160;4307:4:33;2073:95;;;632:990:160;2073:95:33;4221:92;;;;;;:::i;:::-;632:990:160;4211:103:33;;4130:191;:::o;7084:141:26:-;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;5140:1530:66;;;6199:66;6186:79;;6182:164;;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;632:990:160;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6457:24::-;632:990:160;;;-1:-1:-1;632:990:160;;;;;6182:164:66;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:990:160;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;632:990:160;7378:38:66;;632:990:160;;7439:23:66;;;7291:20;7439:23;632:990:160;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:990:160;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:990:160;;;7291:20:66;7679:32;632:990:160;;;;7291:20:66;632:990:160;;;;;7291:20:66;632:990:160;7058:687:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:33;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:33;632:990:160;7603:15:33;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;;7966:723:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:33;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:33;632:990:160;8541:18:33;;;;8579:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718\",\"dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd","urls":["bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718","dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":76987,"exportedSymbols":{"ERC20BurnableUpgradeable":[40320],"ERC20PermitUpgradeable":[40489],"ERC20Upgradeable":[40258],"Initializable":[39641],"OwnableUpgradeable":[39387],"WrappedVara":[76986]},"nodeType":"SourceUnit","src":"39:1584:160","nodes":[{"id":76881,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":76883,"nodeType":"ImportDirective","src":"65:96:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":76987,"sourceUnit":39642,"symbolAliases":[{"foreign":{"id":76882,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39641,"src":"73:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76885,"nodeType":"ImportDirective","src":"162:102:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":76987,"sourceUnit":40259,"symbolAliases":[{"foreign":{"id":76884,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40258,"src":"170:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76887,"nodeType":"ImportDirective","src":"265:133:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76987,"sourceUnit":40321,"symbolAliases":[{"foreign":{"id":76886,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"273:24:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76889,"nodeType":"ImportDirective","src":"399:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76987,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":76888,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"407:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76891,"nodeType":"ImportDirective","src":"501:129:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76987,"sourceUnit":40490,"symbolAliases":[{"foreign":{"id":76890,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40489,"src":"509:22:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76986,"nodeType":"ContractDefinition","src":"632:990:160","nodes":[{"id":76904,"nodeType":"VariableDeclaration","src":"784:51:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:160","scope":76986,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76902,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":76903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":76907,"nodeType":"VariableDeclaration","src":"841:46:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:160","scope":76986,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76905,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":76906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":76910,"nodeType":"VariableDeclaration","src":"893:57:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:160","scope":76986,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76908,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":76909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:160","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":76918,"nodeType":"FunctionDefinition","src":"1010:53:160","nodes":[],"body":{"id":76917,"nodeType":"Block","src":"1024:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76914,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1034:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76916,"nodeType":"ExpressionStatement","src":"1034:22:160"}]},"documentation":{"id":76911,"nodeType":"StructuredDocumentation","src":"957:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76912,"nodeType":"ParameterList","parameters":[],"src":"1021:2:160"},"returnParameters":{"id":76913,"nodeType":"ParameterList","parameters":[],"src":"1024:0:160"},"scope":76986,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76952,"nodeType":"FunctionDefinition","src":"1069:297:160","nodes":[],"body":{"id":76951,"nodeType":"Block","src":"1130:236:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76926,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76904,"src":"1153:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":76927,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76907,"src":"1165:12:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76925,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39709,"src":"1140:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76929,"nodeType":"ExpressionStatement","src":"1140:38:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76930,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40279,"src":"1188:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76932,"nodeType":"ExpressionStatement","src":"1188:22:160"},{"expression":{"arguments":[{"id":76934,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76920,"src":"1235:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76933,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1220:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76936,"nodeType":"ExpressionStatement","src":"1220:28:160"},{"expression":{"arguments":[{"id":76938,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76904,"src":"1277:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76937,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40376,"src":"1258:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":76939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76940,"nodeType":"ExpressionStatement","src":"1258:30:160"},{"expression":{"arguments":[{"id":76942,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76920,"src":"1305:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76943,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76910,"src":"1319:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:160","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":76945,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[76970],"referencedDeclaration":76970,"src":"1348:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76941,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1299:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76950,"nodeType":"ExpressionStatement","src":"1299:60:160"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":76923,"kind":"modifierInvocation","modifierName":{"id":76922,"name":"initializer","nameLocations":["1118:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1118:11:160"},"nodeType":"ModifierInvocation","src":"1118:11:160"}],"name":"initialize","nameLocation":"1078:10:160","parameters":{"id":76921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76920,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:160","nodeType":"VariableDeclaration","scope":76952,"src":"1089:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76919,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:160"},"returnParameters":{"id":76924,"nodeType":"ParameterList","parameters":[],"src":"1130:0:160"},"scope":76986,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76961,"nodeType":"FunctionDefinition","src":"1372:60:160","nodes":[],"body":{"id":76960,"nodeType":"Block","src":"1430:2:160","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":76955,"kind":"modifierInvocation","modifierName":{"id":76954,"name":"onlyOwner","nameLocations":["1403:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1403:9:160"},"nodeType":"ModifierInvocation","src":"1403:9:160"},{"arguments":[{"hexValue":"32","id":76957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":76958,"kind":"modifierInvocation","modifierName":{"id":76956,"name":"reinitializer","nameLocations":["1413:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"1413:13:160"},"nodeType":"ModifierInvocation","src":"1413:16:160"}],"name":"reinitialize","nameLocation":"1381:12:160","parameters":{"id":76953,"nodeType":"ParameterList","parameters":[],"src":"1393:2:160"},"returnParameters":{"id":76959,"nodeType":"ParameterList","parameters":[],"src":"1430:0:160"},"scope":76986,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76970,"nodeType":"FunctionDefinition","src":"1438:83:160","nodes":[],"body":{"id":76969,"nodeType":"Block","src":"1495:26:160","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":76967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:2:160","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":76966,"id":76968,"nodeType":"Return","src":"1505:9:160"}]},"baseFunctions":[39778],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1447:8:160","overrides":{"id":76963,"nodeType":"OverrideSpecifier","overrides":[],"src":"1470:8:160"},"parameters":{"id":76962,"nodeType":"ParameterList","parameters":[],"src":"1455:2:160"},"returnParameters":{"id":76966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76970,"src":"1488:5:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":76964,"name":"uint8","nodeType":"ElementaryTypeName","src":"1488:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1487:7:160"},"scope":76986,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":76985,"nodeType":"FunctionDefinition","src":"1527:93:160","nodes":[],"body":{"id":76984,"nodeType":"Block","src":"1586:34:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76980,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76972,"src":"1602:2:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76981,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"1606:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76979,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1596:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76983,"nodeType":"ExpressionStatement","src":"1596:17:160"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":76977,"kind":"modifierInvocation","modifierName":{"id":76976,"name":"onlyOwner","nameLocations":["1576:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1576:9:160"},"nodeType":"ModifierInvocation","src":"1576:9:160"}],"name":"mint","nameLocation":"1536:4:160","parameters":{"id":76975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76972,"mutability":"mutable","name":"to","nameLocation":"1549:2:160","nodeType":"VariableDeclaration","scope":76985,"src":"1541:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76971,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76974,"mutability":"mutable","name":"amount","nameLocation":"1561:6:160","nodeType":"VariableDeclaration","scope":76985,"src":"1553:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:28:160"},"returnParameters":{"id":76978,"nodeType":"ParameterList","parameters":[],"src":"1586:0:160"},"scope":76986,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76892,"name":"Initializable","nameLocations":["660:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39641,"src":"660:13:160"},"id":76893,"nodeType":"InheritanceSpecifier","src":"660:13:160"},{"baseName":{"id":76894,"name":"ERC20Upgradeable","nameLocations":["679:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":40258,"src":"679:16:160"},"id":76895,"nodeType":"InheritanceSpecifier","src":"679:16:160"},{"baseName":{"id":76896,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:160"],"nodeType":"IdentifierPath","referencedDeclaration":40320,"src":"701:24:160"},"id":76897,"nodeType":"InheritanceSpecifier","src":"701:24:160"},{"baseName":{"id":76898,"name":"OwnableUpgradeable","nameLocations":["731:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"731:18:160"},"id":76899,"nodeType":"InheritanceSpecifier","src":"731:18:160"},{"baseName":{"id":76900,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:160"],"nodeType":"IdentifierPath","referencedDeclaration":40489,"src":"755:22:160"},"id":76901,"nodeType":"InheritanceSpecifier","src":"755:22:160"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76986,40489,40646,41119,41540,43202,39387,40320,40258,41582,43166,43140,40535,39641],"name":"WrappedVara","nameLocation":"641:11:160","scope":76987,"usedErrors":[39223,39228,39404,39407,40355,40362,40549,41552,41557,41562,41571,41576,41581,44912,44917,44922],"usedEvents":[39234,39412,41520,43074,43083]}],"license":"UNLICENSED"},"id":160} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cbe90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;8837:64:26;632:990:160;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;632:990:160;;7985:34:26;7981:146;;-1:-1:-1;632:990:160;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;;;8837:64:26;632:990:160;;;8087:29:26;;632:990:160;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;632:990:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2357:1:25;632:990:160;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;:::-;632:990:160;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;4867:20:27;632:990:160;;:::i;:::-;4867:20:27;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:29;;:26;2297:97;;6967:25:66;7021:8;632:990:160;;;;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;2435:78:29;632:990:160;2435:78:29;;632:990:160;1279:95:29;632:990:160;;1279:95:29;632:990:160;1279:95:29;;632:990:160;;;;;;;;;1279:95:29;;632:990:160;1279:95:29;632:990:160;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;2435:78:29;;;632:990:160;2435:78:29;;:::i;:::-;632:990:160;2425:89:29;;4094:23:33;;:::i;:::-;3515:233:68;632:990:160;3515:233:68;;-1:-1:-1;;;3515:233:68;;;;;;;;;;632:990:160;;;3515:233:68;632:990:160;;3515:233:68;;6967:25:66;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:990:160;2638:15:29;;;2634:88;;10117:4:27;;;;;:::i;2634:88:29:-;2676:35;;;;;632:990:160;2676:35:29;632:990:160;;;;;;2676:35:29;2297:97;2350:33;;;;632:990:160;2350:33:29;632:990:160;;;;2350:33:29;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;4301:16:26;632:990:160;;;;4726:16:26;;:34;;;;632:990:160;4805:1:26;4790:16;:50;;;;632:990:160;4855:13:26;:30;;;;632:990:160;4851:91:26;;;-1:-1:-1;;632:990:160;;4805:1:26;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;4979:67:26;;632:990:160;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;:::i;:::-;821:14;632:990;;-1:-1:-1;;;632:990:160;821:14;;;6893:76:26;;:::i;:::-;;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;6893:76:26;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;4805:1:26;632:990:160;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;2806:64:33;632:990:160;;;3902:16:33;632:990:160;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;941:9:160;8928:5:27;;;:::i;:::-;5066:101:26;;632:990:160;5066:101:26;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;5142:14:26;632:990:160;;;4805:1:26;632:990:160;;5142:14:26;632:990:160;8799:91:27;8847:32;;;632:990:160;8847:32:27;632:990:160;;;;;8847:32:27;632:990:160;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;4979:67:26;-1:-1:-1;;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;4979:67:26;;;4851:91;6498:23;;;632:990:160;4908:23:26;632:990:160;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;4616:5:27;632:990:160;;:::i;:::-;;;966:10:30;;4616:5:27;:::i;:::-;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;-1:-1:-1;;;;;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2806:64:33;632:990:160;5777:18:33;:43;;;632:990:160;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:33;632:990:160;;;;6000:4:33;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;5777:43:33;632:990:160;5799:16:33;632:990:160;5799:21:33;5777:43;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;1479:5:28;632:990:160;;:::i;:::-;;;966:10:30;1448:5:28;966:10:30;;1448:5:28;;:::i;:::-;1479;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;632:990:160;;3975:40:25;632:990:160;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;6431:44:26;;;;632:990:160;6427:105:26;;1427:1:160;632:990;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;6656:20:26;632:990:160;;;1427:1;632:990;;6656:20:26;632:990:160;6431:44:26;632:990:160;1427:1;632:990;;;6450:25:26;;6431:44;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;1005:5:28;632:990:160;;966:10:30;1005:5:28;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;8928:5;632:990:160;;;8928:5:27;;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;4094:23:33;;:::i;:::-;632:990:160;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;1512:2;632:990;;;;;;;;;-1:-1:-1;;632:990:160;;;;6198:5:27;632:990:160;;:::i;:::-;;;:::i;:::-;;;966:10:30;6162:5:27;966:10:30;;6162:5:27;;:::i;:::-;6198;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;10117:4:27;632:990:160;;:::i;:::-;;;966:10:30;;10117:4:27;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:990:160;;;;;4867:13:27;632:990:160;;;;;;:::o;3405:215:25:-;-1:-1:-1;;;;;632:990:160;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:990:160;;3509:1:25;3534:31;11745:477:27;;;4867:20;;;:::i;:::-;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11910:37:27;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:990:160;;11141:19:27;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;11235:90;;11334:20;;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11906:310:27;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:27;-1:-1:-1;11283:31:27;632:990:160;;-1:-1:-1;11283:31:27;11137:89;11183:32;;;-1:-1:-1;11183:32:27;-1:-1:-1;11183:32:27;632:990:160;;-1:-1:-1;11183:32:27;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:27;632:990:160;;;;;;12018:60:27;632:990:160;;;;;;-1:-1:-1;12018:60:27;6605:300;-1:-1:-1;;;;;632:990:160;;6688:18:27;;6684:86;;-1:-1:-1;;;;;632:990:160;;6783:16:27;;6779:86;;632:990:160;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;8358:25:27;632:990:160;;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;6704:1:27;632:990:160;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;;;;;;;;;;;8358:25:27;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:990:160;;;;;;6704:1:27;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:990:160;;6704:1:27;6729:30;2658:162:25;-1:-1:-1;;;;;;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;632:990:160;;-1:-1:-1;2763:40:25;9259:206:27;;;;-1:-1:-1;;;;;632:990:160;9329:21:27;;9325:89;;632:990:160;9348:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;9348:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;;9348:1:27;632:990:160;;8358:25:27;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;8358:25:27;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:990:160;;;;;;9348:1:27;7655:50;10976:487;;-1:-1:-1;;;;;632:990:160;;;11141:19:27;;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;;11235:90;;11415:31;11334:20;;632:990:160;11334:20:27;;:::i;:::-;632:990:160;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;11415:31:27;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;;;8358:25:27;;632:990:160;;7918:16:27;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;7914:429:27;632:990:160;;;;;8358:25:27;7220:1170::o;7914:429::-;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;7914:429:27;;632:990:160;;;;;941:9;;;;;632:990;941:9;4130:191:33;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:990:160;;4221:92:33;;;;632:990:160;2073:95:33;632:990:160;;;2073:95:33;;632:990:160;2073:95:33;;;632:990:160;4284:13:33;2073:95;;;632:990:160;4307:4:33;2073:95;;;632:990:160;2073:95:33;4221:92;;;;;;:::i;:::-;632:990:160;4211:103:33;;4130:191;:::o;7084:141:26:-;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;5140:1530:66;;;6199:66;6186:79;;6182:164;;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;632:990:160;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6457:24::-;632:990:160;;;-1:-1:-1;632:990:160;;;;;6182:164:66;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:990:160;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;632:990:160;7378:38:66;;632:990:160;;7439:23:66;;;7291:20;7439:23;632:990:160;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:990:160;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:990:160;;;7291:20:66;7679:32;632:990:160;;;;7291:20:66;632:990:160;;;;;7291:20:66;632:990:160;7058:687:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:33;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:33;632:990:160;7603:15:33;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;;7966:723:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:33;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:33;632:990:160;8541:18:33;;;;8579:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718\",\"dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd","urls":["bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718","dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":77016,"exportedSymbols":{"ERC20BurnableUpgradeable":[40320],"ERC20PermitUpgradeable":[40489],"ERC20Upgradeable":[40258],"Initializable":[39641],"OwnableUpgradeable":[39387],"WrappedVara":[77015]},"nodeType":"SourceUnit","src":"39:1584:160","nodes":[{"id":76910,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":76912,"nodeType":"ImportDirective","src":"65:96:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":77016,"sourceUnit":39642,"symbolAliases":[{"foreign":{"id":76911,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39641,"src":"73:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76914,"nodeType":"ImportDirective","src":"162:102:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":77016,"sourceUnit":40259,"symbolAliases":[{"foreign":{"id":76913,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40258,"src":"170:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76916,"nodeType":"ImportDirective","src":"265:133:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77016,"sourceUnit":40321,"symbolAliases":[{"foreign":{"id":76915,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"273:24:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76918,"nodeType":"ImportDirective","src":"399:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77016,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":76917,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"407:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76920,"nodeType":"ImportDirective","src":"501:129:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77016,"sourceUnit":40490,"symbolAliases":[{"foreign":{"id":76919,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40489,"src":"509:22:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77015,"nodeType":"ContractDefinition","src":"632:990:160","nodes":[{"id":76933,"nodeType":"VariableDeclaration","src":"784:51:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:160","scope":77015,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76931,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":76932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":76936,"nodeType":"VariableDeclaration","src":"841:46:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:160","scope":77015,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76934,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":76939,"nodeType":"VariableDeclaration","src":"893:57:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:160","scope":77015,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76937,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":76938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:160","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":76947,"nodeType":"FunctionDefinition","src":"1010:53:160","nodes":[],"body":{"id":76946,"nodeType":"Block","src":"1024:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76943,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1034:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76945,"nodeType":"ExpressionStatement","src":"1034:22:160"}]},"documentation":{"id":76940,"nodeType":"StructuredDocumentation","src":"957:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76941,"nodeType":"ParameterList","parameters":[],"src":"1021:2:160"},"returnParameters":{"id":76942,"nodeType":"ParameterList","parameters":[],"src":"1024:0:160"},"scope":77015,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76981,"nodeType":"FunctionDefinition","src":"1069:297:160","nodes":[],"body":{"id":76980,"nodeType":"Block","src":"1130:236:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76955,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76933,"src":"1153:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":76956,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76936,"src":"1165:12:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76954,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39709,"src":"1140:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":76957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76958,"nodeType":"ExpressionStatement","src":"1140:38:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76959,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40279,"src":"1188:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76961,"nodeType":"ExpressionStatement","src":"1188:22:160"},{"expression":{"arguments":[{"id":76963,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"1235:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76962,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1220:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76965,"nodeType":"ExpressionStatement","src":"1220:28:160"},{"expression":{"arguments":[{"id":76967,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76933,"src":"1277:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76966,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40376,"src":"1258:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":76968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76969,"nodeType":"ExpressionStatement","src":"1258:30:160"},{"expression":{"arguments":[{"id":76971,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"1305:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76972,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76939,"src":"1319:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:160","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":76974,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[76999],"referencedDeclaration":76999,"src":"1348:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76970,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1299:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76979,"nodeType":"ExpressionStatement","src":"1299:60:160"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":76952,"kind":"modifierInvocation","modifierName":{"id":76951,"name":"initializer","nameLocations":["1118:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1118:11:160"},"nodeType":"ModifierInvocation","src":"1118:11:160"}],"name":"initialize","nameLocation":"1078:10:160","parameters":{"id":76950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76949,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:160","nodeType":"VariableDeclaration","scope":76981,"src":"1089:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76948,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:160"},"returnParameters":{"id":76953,"nodeType":"ParameterList","parameters":[],"src":"1130:0:160"},"scope":77015,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76990,"nodeType":"FunctionDefinition","src":"1372:60:160","nodes":[],"body":{"id":76989,"nodeType":"Block","src":"1430:2:160","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":76984,"kind":"modifierInvocation","modifierName":{"id":76983,"name":"onlyOwner","nameLocations":["1403:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1403:9:160"},"nodeType":"ModifierInvocation","src":"1403:9:160"},{"arguments":[{"hexValue":"32","id":76986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":76987,"kind":"modifierInvocation","modifierName":{"id":76985,"name":"reinitializer","nameLocations":["1413:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"1413:13:160"},"nodeType":"ModifierInvocation","src":"1413:16:160"}],"name":"reinitialize","nameLocation":"1381:12:160","parameters":{"id":76982,"nodeType":"ParameterList","parameters":[],"src":"1393:2:160"},"returnParameters":{"id":76988,"nodeType":"ParameterList","parameters":[],"src":"1430:0:160"},"scope":77015,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76999,"nodeType":"FunctionDefinition","src":"1438:83:160","nodes":[],"body":{"id":76998,"nodeType":"Block","src":"1495:26:160","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":76996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:2:160","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":76995,"id":76997,"nodeType":"Return","src":"1505:9:160"}]},"baseFunctions":[39778],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1447:8:160","overrides":{"id":76992,"nodeType":"OverrideSpecifier","overrides":[],"src":"1470:8:160"},"parameters":{"id":76991,"nodeType":"ParameterList","parameters":[],"src":"1455:2:160"},"returnParameters":{"id":76995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76999,"src":"1488:5:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":76993,"name":"uint8","nodeType":"ElementaryTypeName","src":"1488:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1487:7:160"},"scope":77015,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":77014,"nodeType":"FunctionDefinition","src":"1527:93:160","nodes":[],"body":{"id":77013,"nodeType":"Block","src":"1586:34:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77009,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77001,"src":"1602:2:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77010,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"1606:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77008,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1596:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77012,"nodeType":"ExpressionStatement","src":"1596:17:160"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":77006,"kind":"modifierInvocation","modifierName":{"id":77005,"name":"onlyOwner","nameLocations":["1576:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1576:9:160"},"nodeType":"ModifierInvocation","src":"1576:9:160"}],"name":"mint","nameLocation":"1536:4:160","parameters":{"id":77004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77001,"mutability":"mutable","name":"to","nameLocation":"1549:2:160","nodeType":"VariableDeclaration","scope":77014,"src":"1541:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77000,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77003,"mutability":"mutable","name":"amount","nameLocation":"1561:6:160","nodeType":"VariableDeclaration","scope":77014,"src":"1553:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:28:160"},"returnParameters":{"id":77007,"nodeType":"ParameterList","parameters":[],"src":"1586:0:160"},"scope":77015,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76921,"name":"Initializable","nameLocations":["660:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39641,"src":"660:13:160"},"id":76922,"nodeType":"InheritanceSpecifier","src":"660:13:160"},{"baseName":{"id":76923,"name":"ERC20Upgradeable","nameLocations":["679:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":40258,"src":"679:16:160"},"id":76924,"nodeType":"InheritanceSpecifier","src":"679:16:160"},{"baseName":{"id":76925,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:160"],"nodeType":"IdentifierPath","referencedDeclaration":40320,"src":"701:24:160"},"id":76926,"nodeType":"InheritanceSpecifier","src":"701:24:160"},{"baseName":{"id":76927,"name":"OwnableUpgradeable","nameLocations":["731:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"731:18:160"},"id":76928,"nodeType":"InheritanceSpecifier","src":"731:18:160"},{"baseName":{"id":76929,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:160"],"nodeType":"IdentifierPath","referencedDeclaration":40489,"src":"755:22:160"},"id":76930,"nodeType":"InheritanceSpecifier","src":"755:22:160"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77015,40489,40646,41119,41540,43202,39387,40320,40258,41582,43166,43140,40535,39641],"name":"WrappedVara","nameLocation":"641:11:160","scope":77016,"usedErrors":[39223,39228,39404,39407,40355,40362,40549,41552,41557,41562,41571,41576,41581,44912,44917,44922],"usedEvents":[39234,39412,41520,43074,43083]}],"license":"UNLICENSED"},"id":160} \ No newline at end of file